home *** CD-ROM | disk | FTP | other *** search
/ SGI Developer Toolbox 6.1 / SGI Developer Toolbox 6.1 - Disc 4.iso / documents / RFC / rfc1504.txt < prev    next >
Text File  |  1994-08-01  |  202KB  |  4,595 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                     A. Oppenheimer
  8. Request for Comments: 1504                                Apple Computer
  9.                                                              August 1993
  10.  
  11.  
  12.                 Appletalk Update-Based Routing Protocol:
  13.                        Enhanced Appletalk Routing
  14.  
  15. Status of This Memo
  16.  
  17.    This memo provides information for the Internet community.  It does
  18.    not specify an Internet standard.  Distribution of this memo is
  19.    unlimited.
  20.  
  21. Introduction
  22.  
  23.    This memo is being distributed to members of the Internet community
  24.    to fully document an Apple protocol that may be running over the
  25.    Internet.  While the issues discussed may not be directly relevant to
  26.    the research problems of the Internet, they may be interesting to a
  27.    number of researchers and implementers.
  28.  
  29. About This Document
  30.  
  31.    This document provides detailed information about the AppleTalk
  32.    Update-based Routing Protocol (AURP) and wide area routing. AURP
  33.    provides wide area routing enhancements to the AppleTalk routing
  34.    protocols and is fully compatible with AppleTalk Phase 2. The
  35.    organization of this document has as its basis the three major
  36.    components of AURP:
  37.  
  38.       AppleTalk tunneling, which allows AppleTalk data to pass through
  39.       foreign networks and over point-to-point links
  40.  
  41.       the propagation of AppleTalk routing information between internet
  42.       routers connected through foreign networks or over point-to-point
  43.       links
  44.  
  45.       the presentation of AppleTalk network information by an internet
  46.       router to nodes and other Phase 2-compatible routers on its local
  47.       internet
  48.  
  49. What This Document Contains
  50.  
  51.    The chapters of this document contain the following information:
  52.  
  53.       Chapter 1, "Introduction to the AppleTalk Update-Based Routing
  54.       Protocol," introduces the three major components of AURP and the
  55.  
  56.  
  57.  
  58. Oppenheimer                                                     [Page 1]
  59.  
  60. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  61.  
  62.  
  63.       key wide area routing enhancements that AURP provides to the
  64.       AppleTalk routing protocols.
  65.  
  66.       Chapter 2, "Wide Area AppleTalk Connectivity," provides
  67.       information about AppleTalk tunneling through IP internets and over
  68.       point-to-point links.
  69.  
  70.       Chapter 3, "Propagating Routing Information With the AppleTalk
  71.       Update-Based Routing Protocol," describes the essential elements of
  72.       AURP, including the architectural model for update-based routing.
  73.       This chapter provides detailed information about the methods that
  74.       AURP uses to propagate routing information between internet routers
  75.       connected through tunnels.
  76.  
  77.       Chapter 4, "Representing Wide Area Network Information," describes
  78.       optional features of AURP-some of which can also be implemented on
  79.       routers that use RTMP rather than AURP for routing-information
  80.       propagation. It gives detailed information about how an exterior
  81.       router represents imported network information to its local
  82.       internet and to other exterior routers. It describes network
  83.       hiding, device hiding, network-number remapping, clustering, loop
  84.       detection, hop-count reduction, hop-count weighting, and backup
  85.       paths.
  86.  
  87.       The Appendix, "Implementation Details," provides information about
  88.       implementing AURP.
  89.  
  90. What You Need to Know
  91.  
  92.    This document is intended for developers of AppleTalk wide area
  93.    routing products. It assumes familiarity with the AppleTalk network
  94.    system, internet routing, and wide area networking terms and
  95.    concepts.
  96.  
  97. Format of This RFC Document
  98.  
  99.    The text of this document has been quickly prepared for RFC format.
  100.    However, the art is more complex and is not yet ready in this format.
  101.    We plan to incorporate the art in the future. Consult the official
  102.    APDA document, as indicated below, for the actual art.
  103.  
  104. For More Information
  105.  
  106.    The following manuals and books from Apple Computer provide
  107.    additional information about AppleTalk networks. You can obtain books
  108.    published by Addison-Wesley at your local bookstore. Contact APDA,
  109.    Apple's source for developer tools, to obtain technical reference
  110.    materials for developers:
  111.  
  112.  
  113.  
  114. Oppenheimer                                                     [Page 2]
  115.  
  116. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  117.  
  118.  
  119.       APDA
  120.       Apple Computer, Inc.
  121.       20525 Mariani Avenue, M/S 33-G
  122.       Cupertino, CA  95014-6299
  123.  
  124.    These manuals provide information about some AppleTalk network
  125.    products:
  126.  
  127.       The Apple Ethernet NB User's Guide explains how to install and use
  128.       an Apple Ethernet NB Card and EtherTalk software on an AppleTalk
  129.       network.
  130.  
  131.       The Apple InteroPoll Network Administrator's Guide describes how
  132.       to perform maintenance and troubleshooting on an AppleTalk network
  133.       using InteroPoll, a network administrator's utility program.
  134.  
  135.       The Apple Internet Router Administrator's Guide explains how to
  136.       install the Apple Internet Router Basic Connectivity Package and
  137.       how to use the Router Manager application program. It provides
  138.       information about setting up the router, configuring ports to
  139.       create local area and wide area internets, monitoring and
  140.       troubleshooting router operation, and planning your internet.
  141.  
  142.       Using the AppleTalk/IP Wide Area Extension explains how to install
  143.       and use the AppleTalk/IP Wide Area Extension for the Apple Internet
  144.       Router. It provides information about tunneling through TCP/IP
  145.       networks, configuring an IP Tunnel access method for an Ethernet or
  146.       Token Ring port on the Apple Internet Router, troubleshooting IP
  147.       tunneling problems, and configuring MacTCP.
  148.  
  149.       The AppleTalk Remote Access User's Guide explains how to use a
  150.       Macintosh computer to communicate with another Macintosh computer
  151.       over standard telephone lines to access information and resources
  152.       at a remote location.
  153.  
  154.       The Apple Token Ring 4/16 NB Card User's Guide explains how to
  155.       install and operate the card and TokenTalk software on a Token Ring
  156.       network.
  157.  
  158.       The MacTCP Administrator's Guide, version 1.1, explains how to
  159.       install and configure the MacTCP driver, which implements TCP/IP
  160.       (Transmission Control Protocol/Internet Protocol) on a Macintosh
  161.       computer.
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170. Oppenheimer                                                     [Page 3]
  171.  
  172. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  173.  
  174.  
  175.    The following books provide reference information about AppleTalk
  176.    networks:
  177.  
  178.       The Advantages of AppleTalk Phase 2 provides a detailed
  179.       description of the enhanced internetworking capabilities of
  180.       AppleTalk Phase 2, and a brief guide to upgrading an AppleTalk
  181.       internet to AppleTalk Phase 2. Available from Apple Computer.
  182.  
  183.       The AppleTalk Network System Overview provides a technical
  184.       introduction to the AppleTalk network system and its protocol
  185.       architecture. Published by Addison-Wesley Publishing Company.
  186.  
  187.       The AppleTalk Phase 2 Introduction and Upgrade Guide is a detailed
  188.       guide to upgrading AppleTalk network hardware, drivers, and
  189.       application programs to AppleTalk Phase 2, and briefly describes
  190.       extensions to the AppleTalk network system that enhance its
  191.       support for large networks. Available from Apple Computer.
  192.  
  193.       The AppleTalk Phase 2 Protocol Specification is an addendum to the
  194.       first edition of Inside AppleTalk that defines AppleTalk Phase 2
  195.       extensions to AppleTalk protocols that provide enhanced AppleTalk
  196.       addressing, routing, and naming services. Available from APDA.
  197.  
  198.       Inside AppleTalk, second edition, is a technical reference that
  199.       describes the AppleTalk protocols in detail and includes
  200.       information about AppleTalk Phase 2. Published by Addison-Wesley
  201.       Publishing Company.
  202.  
  203.       The Local Area Network Cabling Guide provides information about
  204.       network media, topologies, and network types. Available from Apple
  205.       Computer.
  206.  
  207.       Planning and Managing AppleTalk Networks provides in-depth
  208.       information for network administrators about planning and managing
  209.       AppleTalk networks-including AppleTalk terms and concepts, and
  210.       information about network services, media, topologies, security,
  211.       monitoring and optimizing network performance, and
  212.       troubleshooting.  Published by Addison-Wesley Publishing Company.
  213.  
  214.       Understanding Computer Networks provides an overview of
  215.       networking-including basic information about protocol
  216.       architectures, network media, and topologies. Published by
  217.       Addison-Wesley Publishing Company.
  218.  
  219.       The AppleTalk Update-Based Routing Protocol Specification is the
  220.       official Apple specification of AURP.  It includes the artwork
  221.       currently missing from this document. Available from APDA.
  222.  
  223.  
  224.  
  225.  
  226. Oppenheimer                                                     [Page 4]
  227.  
  228. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  229.  
  230.  
  231. Table of Contents
  232.  
  233. 1.  Introduction to the AppleTalk Update-Based Routing Protocol        6
  234.     Wide area routing enhancements provided by AURP                    6
  235. 2.  Wide Area AppleTalk Connectivity                                   7
  236.     AppleTalk tunneling                                                7
  237.     IP tunneling                                                      14
  238.     Point-to-point tunneling                                          17
  239. 3.  Propagating Routing Information With the AppleTalk Update-Based
  240.     Routing Protocol                                                  18
  241.     AURP architectural model                                          18
  242.     Maintaining current routing information with AURP                 20
  243.     AURP-Tr                                                           21
  244.     One-way connections                                               22
  245.     Initial information exchange                                      22
  246.     Reobtaining routing information                                   28
  247.     Updating routing information                                      28
  248.     Processing update events                                          33
  249.     Router-down notification                                          38
  250.     Obtaining zone information                                        40
  251.     Hiding local networks from remote networks                        44
  252.     AURP packet format                                                45
  253.     Error codes                                                       55
  254. 4.  Representing Wide Area Network Information                        56
  255.     Network hiding                                                    56
  256.     Device hiding                                                     57
  257.     Resolving network-numbering conflicts                             59
  258.     Zone-name management                                              65
  259.     Hop-count reduction                                               66
  260.     Routing loops                                                     67
  261.     Using alternative paths                                           71
  262.     Network management                                                73
  263. Appendix.  Implementation Details                                     75
  264.     State diagrams                                                    75
  265.     AURP table overflow                                               75
  266.     A scheme for updates following initial information exchange       75
  267.     Implementation effort for different components of AURP            76
  268.     Creating free-trade zones                                         77
  269.     Implementation details for clustering                             78
  270.     Modified RTMP algorithms for a backup path                        79
  271. Security Considerations                                               82
  272. Author's Address                                                      82
  273.  
  274.  
  275.  
  276.  
  277.  
  278.  
  279.  
  280.  
  281.  
  282. Oppenheimer                                                     [Page 5]
  283.  
  284. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  285.  
  286.  
  287. 1.  INTRODUCTION TO THE APPLETALK UPDATE-BASED ROUTING PROTOCOL
  288.  
  289.    The AppleTalk Update-based Routing Protocol (AURP) provides wide area
  290.    routing enhancements to the AppleTalk routing protocols and is fully
  291.    compatible with AppleTalk Phase 2. AURP consists of three major
  292.    components:
  293.  
  294.       AppleTalk tunneling through foreign network systems-for example,
  295.       TCP/IP (Transmission Control Protocol/Internet Protocol) and over
  296.       point-to-point links
  297.  
  298.       the propagation of routing information between internet routers
  299.       connected through foreign network systems or over point-to-point
  300.       links
  301.  
  302.       the presentation of AppleTalk network information by an internet
  303.       router to nodes or to other Phase 2-compatible routers on its local
  304.       internet-in other words, on the AppleTalk internet connected
  305.       directly to the router
  306.  
  307.    Chapter 3, "Propagating Routing Information With the AppleTalk
  308.    Update-Based Routing Protocol," describes the elements of AURP that
  309.    are essential for a minimal implementation of AURP. AURP includes
  310.    many optional features for the presentation of network information.
  311.    You can implement many of these optional features on routers that use
  312.    either AURP or RTMP (Routing Table Maintenance Protocol) for
  313.    routing-information propagation.
  314.  
  315.    Figure 1-1 shows how the three major components of AURP interact.
  316.  
  317.                  <<Figure 1-1  Major components of AURP>>
  318.  
  319.    Wide Area Routing Enhancements Provided by AURP
  320.  
  321.    AURP provides AppleTalk Phase 2-compatible routing for large wide
  322.    area networks (WANs). Key wide area routing enhancements provided by
  323.    AURP include:
  324.  
  325.       tunneling through TCP/IP internets and other foreign network
  326.       systems
  327.  
  328.       point-to-point tunneling
  329.  
  330.       basic security-including device hiding and network hiding
  331.  
  332.       remapping of remote network numbers to resolve numbering conflicts
  333.  
  334.  
  335.  
  336.  
  337.  
  338. Oppenheimer                                                     [Page 6]
  339.  
  340. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  341.  
  342.  
  343.       internet clustering to minimize routing traffic and routing-
  344.       information storage requirements
  345.  
  346.       hop-count reduction to allow the creation of larger internets
  347.       improved use of alternate paths through hop-count weighting and
  348.       the designation of backup paths
  349.  
  350. 2.  WIDE AREA APPLETALK CONNECTIVITY
  351.  
  352.    This chapter describes the wide area connectivity capabilities
  353.    provided by the AppleTalk Update-based Routing Protocol (AURP),
  354.    including:
  355.  
  356.       AppleTalk tunneling
  357.  
  358.       tunneling through TCP/IP internets
  359.  
  360.       tunneling over point-to-point links
  361.  
  362.    AppleTalk Tunneling
  363.  
  364.    Tunneling allows a network administrator to connect two or more
  365.    native internets through a foreign network system to form a large
  366.    wide area network (WAN). For example, an AppleTalk WAN might consist
  367.    of two or more native AppleTalk internets connected through a tunnel
  368.    built on a TCP/IP internet. In such an AppleTalk WAN, native
  369.    internets use AppleTalk protocols, while the foreign network system
  370.    uses a different protocol family.
  371.  
  372.    A tunnel connecting AppleTalk internets functions as a single,
  373.    virtual data link between the internets. A tunnel can be either a
  374.    foreign network system or a point-to-point link. Figure 2-1 shows an
  375.    AppleTalk tunnel.
  376.  
  377.                      <<Figure 2-1  AppleTalk tunnel>>
  378.  
  379.    There are two types of tunnels:
  380.  
  381.       dual-endpoint tunnels, which have only two routers on a tunnel-for
  382.       example, point-to-point tunnels
  383.  
  384.       multiple-endpoint tunnels-herein referred to as multipoint tunnels-
  385.       which have two or more routers on a tunnel
  386.  
  387.    AURP implements multipoint tunneling by providing mechanisms for data
  388.    encapsulation and the propagation of routing information to specific
  389.    routers.
  390.  
  391.  
  392.  
  393.  
  394. Oppenheimer                                                     [Page 7]
  395.  
  396. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  397.  
  398.  
  399.    Exterior Routers
  400.  
  401.    An AppleTalk router with a port that connects an AppleTalk internet
  402.    to a tunnel is an exterior router. An exterior router always sends
  403.    split-horizoned routing information to the other exterior routers on
  404.    a multipoint tunnel. That is, an exterior router on a multipoint
  405.    tunnel sends routing information for only its local internet to other
  406.    exterior routers on that tunnel. An exterior router never exports
  407.    routing information obtained from other exterior routers on the
  408.    tunnel, because the exterior routers communicate their own routing
  409.    information to one another.
  410.  
  411.    As shown in Figure 2-2, the absence or presence of redundant paths,
  412.    or loops, across a tunnel changes the way an exterior router defines
  413.    its local internet. For more information about redundant paths, see
  414.    the section "Redundant Paths" in Chapter 4. If no loops exist across
  415.    a tunnel, an exterior router's local internet comprises all networks
  416.    connected directly or indirectly to other ports on the exterior
  417.    router.  When loops exist across a tunnel, an exterior router's local
  418.    internet comprises only those networks for which the next internet
  419.    router is not across a tunnel. Using this definition of a local
  420.    internet, two exterior routers' local internets might overlap if
  421.    loops existed across a tunnel.  For more information about routing
  422.    loops, see the section "Routing Loops" in Chapter 4.
  423.  
  424.             <<Figure 2-2  An exterior router's local internet>>
  425.  
  426.    An exterior router functions as an AppleTalk router within its local
  427.    internet and as an end node in the foreign network system connecting
  428.    AppleTalk internets. An exterior router uses RTMP to communicate
  429.    routing information to its local internet, and uses AURP and the
  430.    network-layer protocol of the tunnel's underlying foreign network
  431.    system to communicate with other exterior routers connected to the
  432.    tunnel. An exterior router encapsulates AppleTalk data packets using
  433.    the headers required by the foreign network system, then forwards the
  434.    packets to another exterior router connected to the tunnel.
  435.  
  436.    FORWARDING DATA: When forwarding AppleTalk data packets across a
  437.    multipoint tunnel, an exterior router
  438.  
  439.       encapsulates the AppleTalk data packets in the packets of the
  440.       tunnel's underlying foreign network system by adding the headers
  441.       required by that network system
  442.  
  443.       adds an AURP-specific header-called a domain header-immediately
  444.       preceding each AppleTalk data packet
  445.  
  446.  
  447.  
  448.  
  449.  
  450. Oppenheimer                                                     [Page 8]
  451.  
  452. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  453.  
  454.  
  455.    A domain header contains additional addressing information-including
  456.    a source domain identifier and destination domain identifier. For
  457.    more information about domain headers, see the sections "AppleTalk
  458.    Data-Packet Format" and "AppleTalk Data-Packet Format for IP
  459.    Tunneling" later in this chapter. For detailed information about
  460.    domain identifiers, see the section "Domain Identifiers" later in
  461.    this chapter.
  462.  
  463.    Before forwarding a data packet to a network in another exterior
  464.    router's local internet, an exterior router must obtain the foreign-
  465.    protocol address of the exterior router that is the next internet
  466.    router in the path to the packet's destination network. The exterior
  467.    router then sends the packet to that exterior router's foreign-
  468.    protocol address using the network-layer protocol of the foreign
  469.    network system. The exterior router need not know anything further
  470.    about how the packet traverses this virtual data link.
  471.  
  472.    Once the destination exterior router receives the packet, it removes
  473.    the headers required by the foreign network system and the domain
  474.    header, then forwards the packet to its destination in the local
  475.    AppleTalk internet.
  476.  
  477.    If the length of an AppleTalk data packet in bytes is greater than
  478.    that of the data field of a foreign-protocol packet, a forwarding
  479.    exterior router must fragment the AppleTalk data packet into multiple
  480.    foreign-protocol packets, then forward these packets to their
  481.    destination. Once the destination exterior router receives all of the
  482.    fragments that make up the AppleTalk data packet, it reassembles the
  483.    packet.
  484.  
  485.    CONNECTING MULTIPLE TUNNELS TO AN EXTERIOR ROUTER: An exterior router
  486.    can also connect two or more multipoint tunnels. As shown in Figure
  487.    2-3, when an exterior router connects more than one multipoint
  488.    tunnel, the tunnels can be built on any of the following:
  489.  
  490.       the same foreign network system
  491.  
  492.       different foreign network systems
  493.  
  494.       similar, but distinct foreign network systems
  495.  
  496.      <<Figure 2-3  Connecting multiple tunnels to an exterior router>>
  497.  
  498.    Whether the tunnels connected to an exterior router are built on
  499.    similar or different foreign network systems, each tunnel acts as an
  500.    independent, virtual data link. As shown in Figure 2-4, an exterior
  501.    router connected to multiple tunnels functions logically as though it
  502.    were two or more exterior routers connected to the same AppleTalk
  503.  
  504.  
  505.  
  506. Oppenheimer                                                     [Page 9]
  507.  
  508. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  509.  
  510.  
  511.    network, with each exterior router connected to a different tunnel.
  512.  
  513.      <<Figure 2-4  An exterior router connected to multiple tunnels>>
  514.  
  515.    Fully Connected and Partially Connected Tunnels
  516.  
  517.    An AppleTalk multipoint tunnel functions as a virtual data link. AURP
  518.    assumes full connectivity across a multipoint tunnel-that is, all
  519.    exterior routers on such a tunnel can communicate with one another.
  520.    An exterior router always sends split-horizoned routing information
  521.    to other exterior routers on a multipoint tunnel. That is, an
  522.    exterior router on a multipoint tunnel sends routing information for
  523.    only its local internet to other exterior routers on that tunnel. An
  524.    exterior router never exports routing information obtained from other
  525.    exterior routers on the tunnel, because exterior routers communicate
  526.    their routing information to one another.
  527.  
  528.    If all exterior routers connected to a multipoint tunnel are aware of
  529.    and can send packets to one another, that tunnel is fully connected.
  530.    If some of the exterior routers on a multipoint tunnel are not aware
  531.    of one another, the tunnel is only partially connected. Figure 2-5
  532.    shows examples of a fully connected tunnel, a partially connected
  533.    tunnel, and two fully connected tunnels.
  534.  
  535.       <<Figure 2-5  Fully connected and partially connected tunnels>>
  536.  
  537.    In the second example shown in Figure 2-5, the network administrator
  538.    may have connected the tunnel partially for one of these reasons:
  539.  
  540.       to prevent the local internets connected to exterior routers A and
  541.       C from communicating with one another, while providing full
  542.       connectivity between the local internets connected to exterior
  543.       router
  544.  
  545.       B and the local internets connected to both exterior routers A and
  546.       C
  547.  
  548.       because local internets connected to exterior routers A and C need
  549.       access only to local internets connected to exterior router B-not
  550.       to each other's local internets
  551.  
  552.       because exterior routers A and C-which should be aware of one
  553.       another-were misconfigured
  554.  
  555.    Generally, an exterior router cannot determine whether a multipoint
  556.    tunnel is fully connected or partially connected. In the second
  557.    example in Figure 2-5, exterior router B does not know whether
  558.    exterior routers A and C are aware of one another. However, exterior
  559.  
  560.  
  561.  
  562. Oppenheimer                                                    [Page 10]
  563.  
  564. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  565.  
  566.  
  567.    router B must assume that the tunnel is fully connected, and that
  568.    exterior routers A and C can exchange routing information. An
  569.    exterior router should never forward routing information received
  570.    from other exterior routers back across the tunnel. It should always
  571.    send split-horizoned routing information to other exterior routers.
  572.  
  573.    If connecting exterior routers A and C directly would be either
  574.    expensive or slow, a network administrator could instead establish
  575.    two independent multipoint tunnels-one connecting exterior routers A
  576.    and B, another connecting exterior routers B and C-as shown in the
  577.    third example in Figure 2-5. Exterior routers A and C could then
  578.    establish connectivity by routing all data packets forwarded by one
  579.    to the other through exterior router B.
  580.  
  581.    Hiding Local Networks From Tunnels
  582.  
  583.    When configuring a tunneling port on an exterior router, a network
  584.    administrator can provide network-level security to a network in the
  585.    exterior router's local internet by hiding that network. Hiding a
  586.    specific network in the exterior router's local internet prevents
  587.    internets across a multipoint tunnel from becoming aware of the
  588.    presence of that network. When the exterior router exchanges routing
  589.    information with other exterior routers connected to the tunnel, it
  590.    exports no information about any hidden networks to the exterior
  591.    routers from which the networks are hidden.
  592.  
  593.    An administrator can specify that certain networks in the exterior
  594.    router's local internet be hidden from a specific exterior router
  595.    connected to the tunnel or from all exterior routers on the tunnel.
  596.  
  597.    Nodes on the local internet of an exterior router from which a
  598.    network is hidden cannot access that network. Neither the zones on a
  599.    hidden network nor the names of devices in those zones appear in the
  600.    Chooser on computers connected to such an internet. When a network is
  601.    hidden, its nodes are also unable to access internets from which the
  602.    network is hidden. If a node on a hidden network sends a packet
  603.    across a tunnel to a node on an internet from which it is hidden,
  604.    even if the packet arrives at its destination, the receiving node
  605.    cannot respond. The exterior router connected to the receiving node's
  606.    internet does not know the return path to the node on the hidden
  607.    network. Thus, it appears to the node on the hidden network that the
  608.    node to which it sent the packet is inaccessible.
  609.  
  610.    ADVANTAGES AND DISADVANTAGES OF NETWORK HIDING: Network hiding
  611.    provides the following advantages:
  612.  
  613.       On large, global WANs, a network administrator can configure
  614.       network-level security for an organization's internets.
  615.  
  616.  
  617.  
  618. Oppenheimer                                                    [Page 11]
  619.  
  620. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  621.  
  622.  
  623.  
  624.       It reduces the amount of network traffic across both a tunnel and
  625.       the internets connected to that tunnel.
  626.  
  627.    Network hiding has the following disadvantages:
  628.  
  629.       Nodes on hidden networks have limited access to internets across a
  630.       tunnel.
  631.  
  632.       AppleTalk networking software running on a node on a hidden network
  633.       lists all of the AppleTalk zone names exported by exterior routers
  634.       connected to a tunnel, but may list the names of only some or none
  635.       of the devices in those zones. It cannot list the names of devices
  636.       that are unable to respond to Name Binding Protocol (NBP) lookups
  637.       originating from a node on a hidden network.
  638.  
  639.    Domain Identifiers
  640.  
  641.    Exterior routers assign a unique domain identifier to each AppleTalk
  642.    internet, or domain. Domain identifiers enable exterior routers on a
  643.    multipoint tunnel to distinguish individual AppleTalk internets in a
  644.    wide area internet from one another.
  645.  
  646.    The definition of an AppleTalk domain identifier is extensible to
  647.    allow for future use when many additional types of AppleTalk tunnels
  648.    and tunneling topologies may exist:
  649.  
  650.       Under the current version of AURP, each exterior router connected
  651.       to a multipoint tunnel assigns a domain identifier to its local
  652.       AppleTalk internet that uniquely identifies that internet on the
  653.       tunnel. If redundant paths connect an AppleTalk internet through
  654.       more than one exterior router on a tunnel, each exterior router can
  655.       assign a different domain identifier to that internet, or AppleTalk
  656.       domain, as shown in Figure 2-6.
  657.  
  658.       Under future routing protocols, a domain identifier will define the
  659.       boundaries of an AppleTalk domain globally-for all exterior
  660.       routers.  Thus, a domain identifier will be unique among all
  661.       domains in a wide area internet. All exterior routers within a wide
  662.       area internet will use the same domain identifier for a given
  663.       AppleTalk internet, as shown in Figure 2-6.
  664.  
  665.                     <<Figure 2-6  Domain identifiers>>
  666.  
  667.    To simplify an exterior router's port configuration, a parameter that
  668.    is already administrated-such as a node address-can serve as the
  669.    basis for an exterior router's domain identifier.
  670.  
  671.  
  672.  
  673.  
  674. Oppenheimer                                                    [Page 12]
  675.  
  676. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  677.  
  678.  
  679.    GENERAL DOMAIN-IDENTIFIER FORMAT: Figure 2-7 shows the general form
  680.    of a domain identifier.
  681.  
  682.              <<Figure 2-7  General domain-identifier format>>
  683.  
  684.    The general domain identifier (DI) consists of the following fields:
  685.  
  686.    Length:  Byte 1 represents the length of the DI in bytes, not
  687.    including the length byte. A DI must consist of an even number of
  688.    bytes. Thus, the length byte is always an odd-numbered byte. The
  689.    length field permits tunneling through foreign network systems that
  690.    have addresses of any length-including the long addresses
  691.    characteristic of X.25 and OSI. The value of the length byte varies,
  692.    depending on the format of the DI.
  693.  
  694.    Authority:  Byte 2 indicates the authority that administrates the
  695.    identifier bytes of the DI. At present, Apple has defined only two
  696.    authority-byte values:
  697.  
  698.       $01-indicates that the subsequent bytes correspond to a unique,
  699.       centrally administrated IP address
  700.  
  701.       $00-the null DI-indicates that no additional bytes follow
  702.  
  703.    All other authority-byte values are reserved and should not be used.
  704.  
  705.    Identifier:  The identifier field starts at byte 3 and consists of a
  706.    variable number of bytes of the type indicated by the authority byte.
  707.  
  708.    NULL DOMAIN-IDENTIFIER FORMAT: The use of a null domain identifier is
  709.    appropriate only when there is no need to distinguish the domains
  710.    connected to a tunnel-for example, where a tunnel exists within a
  711.    single internet-or for a point-to-point link. Figure 2-8 shows the
  712.    null form of a domain identifier.
  713.  
  714.                <<Figure 2-8  Null domain-identifier format>>
  715.  
  716.    A null domain identifier consists of the following bytes:
  717.  
  718.    Length:  Byte 1 contains the value $01, defining the length of the
  719.    null DI as one byte.
  720.  
  721.    Authority:  Byte 2 contains the value $00, indicating a null DI.
  722.  
  723.    AppleTalk Data-Packet Format
  724.  
  725.    Part of the format of an AppleTalk data packet sent across a
  726.    multipoint tunnel or a point-to-point link depends on the underlying
  727.  
  728.  
  729.  
  730. Oppenheimer                                                    [Page 13]
  731.  
  732. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  733.  
  734.  
  735.    foreign network system. The headers required by a foreign-network
  736.    protocol always precede an AppleTalk data packet sent across a
  737.    multipoint tunnel.  A domain header generally immediately precedes
  738.    the AppleTalk data packet. Figure 2-9 shows the format of an
  739.    AppleTalk data packet preceded by a domain header.
  740.  
  741.      <<Figure 2-9  AppleTalk data-packet format with a domain header>>
  742.  
  743.    A domain header consists of the following fields:
  744.  
  745.    Destination DI:  The length of the destination DI field in bytes
  746.    depends on the type of DI.
  747.  
  748.    Source DI:  The length of the source DI field in bytes depends on the
  749.    type of DI.
  750.  
  751.    Version number:  The version number field is two bytes in length and
  752.    currently contains the value 0001.
  753.  
  754.    Reserved:  The two-byte field that follows the version number field
  755.    is reserved for future use and is set to 0000.
  756.  
  757.    Packet type:  The two-byte packet type field contains the value 0002
  758.    to identify the data that follows as AppleTalk data-distinguishing it
  759.    from other data, such as routing data. In the future, Apple may
  760.    define other values for this field.
  761.  
  762.    An AppleTalk data packet does not require a domain header if
  763.  
  764.       it is sent across a multipoint tunnel or point-to-point link that
  765.       provides separate channels for data and routing packets
  766.  
  767.       the domain header's destination DI and source DI fields would both
  768.       contain null DIs
  769.  
  770.    Omitting a domain header reduces overhead associated with the
  771.    exchange of routing information, without any loss of routing
  772.    information. Figure 2-10 shows the format of an AppleTalk data packet
  773.    without a domain header.
  774.  
  775.    <<Figure 2-10  AppleTalk data-packet format without a domain header>>
  776.  
  777.    IP Tunneling
  778.  
  779.    The Transmission Control Protocol/Internet Protocol (TCP/IP) protocol
  780.    suite is a widely used communications standard that provides
  781.    interoperability among computers from various vendors, including
  782.    Apple, IBM, Digital Equipment Corporation, Sun, and Hewlett-Packard.
  783.  
  784.  
  785.  
  786. Oppenheimer                                                    [Page 14]
  787.  
  788. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  789.  
  790.  
  791.    Descriptions of three of the most important TCP/IP protocols follow:
  792.  
  793.       The Transmission Control Protocol (TCP) is a transport-layer
  794.       protocol that provides reliable data transmission between
  795.       processes-that is, between programs that communicate with one
  796.       another. This connection-oriented, byte-stream protocol ensures
  797.       error-free, sequential data delivery, without loss or duplication.
  798.  
  799.       The User Datagram Protocol (UDP) is a transport-layer protocol
  800.       that provides best-effort, low-overhead interprocess data
  801.       transmission.  This datagram-oriented protocol allows higher-layer
  802.       protocols that do not require reliability to transmit data without
  803.       incurring the overhead associated with TCP. UDP does no error
  804.       checking, does not acknowledge its successful receipt of data,
  805.       and does not sequence incoming messages. UDP messages may be lost,
  806.       duplicated, or improperly sequenced.
  807.  
  808.       The Internet Protocol (IP) is a network-layer protocol that
  809.       provides connectionless, best-effort datagram delivery across
  810.       multiple networks. Each host on a TCP/IP network has a unique,
  811.       centrally administrated internet address, called an IP address,
  812.       that identifies the node. The header of an IP datagram contains its
  813.       source and destination IP addresses, allowing any host to route a
  814.       datagram to its destination. TCP/IP provides connectivity between
  815.       many different network types that use data frames of various sizes.
  816.       Therefore, IP can fragment a datagram before sending it across an
  817.       internet.  Datagram fragments can fit into data frames of any size.
  818.       Once all of a datagram's fragments reach their destination, IP
  819.       reassembles the datagram.
  820.  
  821.    Protocols in higher layers pass data to TCP or UDP for delivery to
  822.    peer processes. TCP and UDP encapsulate the data in segments, using
  823.    the appropriate headers, then pass the segments to IP. IP further
  824.    encapsulates the data in IP datagrams, determines each datagram's
  825.    path to its destination, and sends the datagrams across the internet.
  826.  
  827.    Figure 2-11 shows how the TCP/IP family of protocols conforms to the
  828.    Open Systems Interconnection (OSI) model.
  829.  
  830.          <<Figure 2-11  TCP/IP protocol stack and the OSI model>>
  831.  
  832.    Exterior routers that connect AppleTalk internets through a TCP/IP
  833.    tunnel are configured as nodes on both an AppleTalk internet and on
  834.    the TCP/IP internet. Thus, an exterior router on a TCP/IP tunnel is
  835.    also an IP end node in the TCP/IP network system. Exterior routers
  836.    use the TCP/IP internet only to exchange AppleTalk routing
  837.    information and AppleTalk data packets with one another. An exterior
  838.    router encapsulates AppleTalk data packets in IP datagrams before
  839.  
  840.  
  841.  
  842. Oppenheimer                                                    [Page 15]
  843.  
  844. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  845.  
  846.  
  847.    sending them across the TCP/IP internet to a forwarding exterior
  848.    router, which decapsulates the packets, then forwards them to their
  849.    destination AppleTalk networks.
  850.  
  851.    IP Domain-Identifier Format
  852.  
  853.    Under the current version of AURP, exterior routers on IP tunnels
  854.    must use domain identifiers that are based on IP addresses. An
  855.    exterior router on an IP tunnel derives its domain identifier from
  856.    its IP address. Thus, a network administrator does not need to
  857.    configure an exterior router's domain identifier. Figure 2-12 shows
  858.    the IP form of a domain identifier.
  859.  
  860.                <<Figure 2-12  IP domain-identifier format>>
  861.  
  862.    An IP domain identifier consists of the following fields:
  863.  
  864.    Length:  Byte 1 contains the value $07, defining the length of the IP
  865.    DI as seven bytes.
  866.  
  867.    Authority:  Byte 2 contains the value $01, indicating that the
  868.    remainder of the DI is based on an IP address.
  869.  
  870.    Distinguisher:  Bytes 3 and 4 are reserved for future use and are set
  871.    to 0 ($00).
  872.  
  873.    IP address:  Bytes 5 through 8 contain the four-byte IP address of
  874.    either the sending or the receiving exterior router.
  875.  
  876.    NOTE:  Future versions of AURP will allow exterior routers to
  877.    usealternative formats for domain identifiers, even on IP tunnels.
  878.  
  879.    AppleTalk Data-Packet Format for IP Tunneling
  880.  
  881.    The following protocol headers precede an AppleTalk data packet that
  882.    is forwarded across an IP tunnel by an exterior router:
  883.  
  884.       a data-link header
  885.  
  886.       an IP header
  887.  
  888.       a User Datagram Protocol (UDP) header
  889.  
  890.       a domain header
  891.  
  892.    An exterior router encapsulates AppleTalk data packets in UDP packets
  893.    when forwarding them through its UDP port 387, across an IP tunnel,
  894.    to UDP port 387 on another exterior router. When encapsulating data
  895.  
  896.  
  897.  
  898. Oppenheimer                                                    [Page 16]
  899.  
  900. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  901.  
  902.  
  903.    packets, an exterior router should always use UDP checksums. When a
  904.    destination exterior router receives the UDP packets at UDP port 387,
  905.    it decapsulates the packets.
  906.  
  907.    A domain header consists of the following fields:
  908.  
  909.    Destination DI:  This field contains the DI of the exterior router to
  910.    which a packet is being forwarded.
  911.  
  912.    Source DI:  This field contains the DI of the exterior router that is
  913.    forwarding a packet.
  914.  
  915.    Version number:  The version number field is two bytes in length and
  916.    currently contains the value 0001.
  917.  
  918.    Reserved:  The two-byte field that follows the version number field
  919.    is reserved for future use and is set to 0000.
  920.  
  921.    Packet type:  The two-byte packet type field contains the value 0002
  922.    to identify the data that follows as AppleTalk data-distinguishing it
  923.    from other data, such as routing data.
  924.  
  925.    An AppleTalk data packet consists of a domain header and AppleTalk
  926.    data.  Figure 2-13 shows the format of an AppleTalk data packet
  927.    forwarded across an IP tunnel.
  928.  
  929.    <<Figure 2-13  AppleTalk data packet forwarded across an IP tunnel>>
  930.  
  931.    Point-to-Point Tunneling
  932.  
  933.    In point-to-point tunneling, two remote AppleTalk local area networks
  934.    (LANs) connected to half-routers communicate with one another over a
  935.    point-to-point link. A point-to-point link may consist of modems
  936.    communicating over a standard telephone line or a leased line, such
  937.    as a T1 line. Figure 2-14 shows an example of point-to-point
  938.    tunneling.
  939.  
  940.                  <<Figure 2-14  Point-to-point tunneling>>
  941.  
  942.    Generally, exterior routers use null domain identifiers on point-to-
  943.    point links, because there is no IP address to be administrated and
  944.    the opposite end of the tunnel is already uniquely identified.
  945.    However, an exterior router may use other domain-identifier formats.
  946.  
  947.    Point-to-Point Protocol
  948.  
  949.    The Point-to-Point Protocol (PPP) is a data-link-layer protocol that
  950.    provides a standard method of encapsulating and decapsulating
  951.  
  952.  
  953.  
  954. Oppenheimer                                                    [Page 17]
  955.  
  956. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  957.  
  958.  
  959.    network-layer protocol information, and transmitting that information
  960.    over point-to-point links. PPP includes an extensible Link Control
  961.    Protocol (LCP) and a suite of Network Control Protocols (NCPs) that
  962.    configure, enable, and disable various network-layer protocols.
  963.  
  964.    The AppleTalk Control Protocol (ATCP) is a PPP NCP for AppleTalk
  965.    protocols. ATCP configures, enables, and disables the AppleTalk
  966.    network-layer protocol DDP on the half-router at each end of a
  967.    point-to-point link. ATCP also specifies the protocol that a half-
  968.    router uses to propagate routing information-for example, AURP.  When
  969.    using AURP for routing-information propagation, a half-router uses a
  970.    specific PPP protocol type to identify AURP routing-information
  971.    packets-that is, packets preceded by a domain header. PPP provides
  972.    separate channels for AppleTalk data packets and AppleTalk routing-
  973.    information packets. Thus, a half-router can use DDP encapsulation to
  974.    send AppleTalk data packets without including their domain headers.
  975.    When using AURP, a half-router should accept both AppleTalk data
  976.    packets that are preceded by domain headers and DDP-encapsulated
  977.    packets.
  978.  
  979.    NOTE:  The Request for Comments (RFC) 1378, "The PPP AppleTalk
  980.    Control Protocol (ATCP)," provides a detailed specification of ATCP,
  981.    as well as information about using PPP to send AppleTalk data.
  982.  
  983. 3.  PROPAGATING ROUTING INFORMATION WITH THE APPLETALK UPDATE-BASED
  984.     ROUTING PROTOCOL
  985.  
  986.    This chapter describes the required elements of AURP. It provides
  987.    detailed information about using the AppleTalk Update-based Routing
  988.    Protocol (AURP) to propagate routing information between AppleTalk
  989.    exterior routers connected through a foreign network or over a
  990.    point-to-point link, and includes information about
  991.  
  992.       the AURP architectural model
  993.  
  994.       one-way connections
  995.  
  996.       exchanging routing information
  997.  
  998.       updating routing information
  999.  
  1000.       notifying other exterior routers that an exterior router is going
  1001.       down
  1002.  
  1003.       obtaining zone information
  1004.  
  1005.       packet formats
  1006.  
  1007.  
  1008.  
  1009.  
  1010. Oppenheimer                                                    [Page 18]
  1011.  
  1012. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  1013.  
  1014.  
  1015.       error codes
  1016.  
  1017.    AURP Architectural Model
  1018.  
  1019.    AURP provides the functionality of the Routing Table Maintenance
  1020.    Protocol (RTMP) and the Zone Information Protocol (ZIP) while
  1021.    eliminating most of the routing traffic generated by these protocols.
  1022.    Figure 3-1 shows the architectural model for AURP.
  1023.  
  1024.                  <<Figure 3-1  AURP architectural model>>
  1025.  
  1026.    Generally, an AppleTalk router uses RTMP and ZIP to maintain routing
  1027.    information, and sends RTMP data packets, ZIP Queries, and ZIP
  1028.    Replies out its ports. However, if one of the router's ports is
  1029.    connected to an AppleTalk tunnel, the architectural model for the
  1030.    router's central routing module becomes more complex. Logically, the
  1031.    central routing module in an exterior router communicates RTMP and
  1032.    ZIP information to an RTMP/ZIP-to-AURP conversion module, which sends
  1033.    AURP data packets out the tunneling port.
  1034.  
  1035.    RTMP/ZIP-to-AURP Conversion Module
  1036.  
  1037.    The RTMP/ZIP-to-AURP conversion module maintains split-horizoned
  1038.    routing-table information and network number-to-zone name mappings
  1039.    for each exterior router on the tunnel-that is, a copy of the routing
  1040.    information for each exterior router's local internet. Figure 3-2
  1041.    shows the architectural components of the RTMP/ZIP-to-AURP conversion
  1042.    module.
  1043.  
  1044.       <<Figure 3-2  RTMP/ZIP-to-AURP conversion module architecture>>
  1045.  
  1046.    The AURP module of the conversion module obtains routing information
  1047.    from the other exterior routers on the tunnel, then periodically
  1048.    updates the routing-table information and the mappings in the
  1049.    conversion module.  The RTMP module passes this routing-table
  1050.    information to the exterior router's central routing module.
  1051.    Logically, the RTMP module generates an RTMP data packet for each
  1052.    exterior router on the tunnel every ten seconds-the RTMP
  1053.    retransmission time-then passes the packet to the central routing
  1054.    module.
  1055.  
  1056.    The RTMP/ZIP-to-AURP conversion module also maintains a split-
  1057.    horizoned copy of the routing information maintained by the exterior
  1058.    router in which it resides. Logically, the conversion module obtains
  1059.    the routing information from RTMP data packets and ZIP Replies sent
  1060.    by the exterior router's central routing module, then updates the
  1061.    routing information in the conversion module.
  1062.  
  1063.  
  1064.  
  1065.  
  1066. Oppenheimer                                                    [Page 19]
  1067.  
  1068. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  1069.  
  1070.  
  1071.    The AURP module exports routing information about its local AppleTalk
  1072.    internet to other exterior routers on the tunnel.
  1073.  
  1074.    AURP Transport Layering
  1075.  
  1076.    AURP can propagate routing information between exterior routers using
  1077.  
  1078.       a simple, reliable transport based on an underlying datagram
  1079.       service-such as the default transport-layer service for AURP,
  1080.       AURP-Tr. See the section "AURP-Tr," later in this chapter,
  1081.       for more information.
  1082.  
  1083.       a more complex transport-layer service-such as TCP
  1084.  
  1085.    Figure 3-3 shows the AURP transport-layering model.
  1086.  
  1087.                <<Figure 3-3  AURP transport-layering model>>
  1088.  
  1089.    Maintaining Current Routing Information With AURP
  1090.  
  1091.    AURP allows exterior routers to maintain current routing information
  1092.    for other exterior routers on a tunnel by supporting
  1093.  
  1094.       the reliable, initial exchange of split-horizoned routing
  1095.       information - that is, the routing information for an exterior
  1096.       router's local internet
  1097.  
  1098.       reliable updates to that information whenever it changes
  1099.  
  1100.    If an internet topology does not change, AURP generates significantly
  1101.    less routing traffic than RTMP and ZIP. Thus, an administrator can
  1102.    connect very large AppleTalk internets through a tunnel, and the
  1103.    resulting internet generates little or no routing traffic on the
  1104.    tunnel.
  1105.  
  1106.    When an exterior router discovers another exterior router on the
  1107.    tunnel-that is, a peer exterior router-it can request that exterior
  1108.    router to send its routing information. In a reliable, initial
  1109.    exchange of split-horizoned routing information, the peer exterior
  1110.    router returns its network-number list. The peer exterior router also
  1111.    returns each connected network's zone information in an unsequenced
  1112.    series of zone-information packets. If the exterior router requesting
  1113.    the routing information does not receive complete zone information
  1114.    for a network, it must retransmit requests for zone information until
  1115.    it receives the information.
  1116.  
  1117.    Once an exterior router requesting routing information from a peer
  1118.    exterior router has received that exterior router's network-number
  1119.  
  1120.  
  1121.  
  1122. Oppenheimer                                                    [Page 20]
  1123.  
  1124. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  1125.  
  1126.  
  1127.    list and complete zone information, it typically requests the peer
  1128.    exterior router to notify it of any changes to that routing
  1129.    information. The peer exterior router then provides the requesting
  1130.    exterior router with reliable updates to its routing information-
  1131.    however, it sends no other routing information.
  1132.  
  1133.    Notifying Other Exterior Routers of Events
  1134.  
  1135.    If an exterior router has requested notification of changes in
  1136.    another exterior router's split-horizoned routing information, that
  1137.    exterior router must notify the requesting exterior router of any
  1138.    event that changes its routing information. Thus, an exterior router
  1139.    must send updated routing information to the requesting exterior
  1140.    router whenever any of the following events occur:
  1141.  
  1142.       the addition of a new, exported network-that is, a network that is
  1143.       not hidden-to the exterior router's local internet and,
  1144.       consequently, to its routing table
  1145.  
  1146.       a change in the path to an exported network that causes the
  1147.       exterior router to access that network through its local internet
  1148.       rather than through a tunneling port
  1149.  
  1150.       the removal of an exported network from the exterior router's
  1151.       routing table because a network in the exterior router's local
  1152.       internet has gone down
  1153.  
  1154.       a change in the path to an exported network that causes the
  1155.       exterior router to access that network through a tunneling port
  1156.       rather than through its local internet
  1157.  
  1158.       a change in the distance to an exported network
  1159.  
  1160.       a change to a zone name in the zone list of an exported network-
  1161.       an event not currently supported by ZIP or the current version of
  1162.       AURP
  1163.  
  1164.       the exterior router goes down or is shut down
  1165.  
  1166.    Routing-information updates allow an exterior router to maintain
  1167.    accurate, split-horizoned routing information for a peer exterior
  1168.    router on a tunnel.
  1169.  
  1170.    AURP-Tr
  1171.  
  1172.    AURP-Tr, the default transport-layer service for AURP, provides a
  1173.    simple, reliable transport that is based on an underlying datagram
  1174.    service. When using AURP-Tr, only one sequenced transaction can be
  1175.  
  1176.  
  1177.  
  1178. Oppenheimer                                                    [Page 21]
  1179.  
  1180. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  1181.  
  1182.  
  1183.    outstanding, or unacknowledged, at a time-greatly simplifying the
  1184.    implementation of AURP, without limiting its functionality.
  1185.  
  1186.    One-Way Connections
  1187.  
  1188.    A one-way connection is an asymmetrical link between a data sender
  1189.    and a data receiver that are using AURP-Tr, in which an exterior
  1190.    router functioning as a data sender sends a sequenced, reliable,
  1191.    unidirectional data stream to an exterior router functioning as a
  1192.    data receiver.  An exterior router can send routing information over
  1193.    a one-way connection as
  1194.  
  1195.       sequenced data
  1196.  
  1197.       transaction data
  1198.  
  1199.    Sequenced data is data sent in sequence by the data sender and
  1200.    delivered reliably to the data receiver. Typically, the sending of
  1201.    sequenced data is unprovoked-that is, it is not requested by a data
  1202.    receiver. However, a data receiver can request sequenced data. Figure
  1203.    3-4 shows sequenced data being sent across a one-way connection.
  1204.  
  1205.           <<Figure 3-4  Sequenced data on a one-way connection>>
  1206.  
  1207.    Transaction data-also referred to as out-of-band data-is data sent
  1208.    unsequenced by the data sender through a linked request/response
  1209.    transaction that is initiated by the data receiver.
  1210.  
  1211.    The data receiver can use a one-way connection to request transaction
  1212.    data from the data sender. If the data receiver does not receive a
  1213.    response, it must retransmit its request. Figure 3-5 shows a one-way
  1214.    connection on which the data receiver requests transaction data from
  1215.    the data sender.
  1216.  
  1217.    <<Figure 3-5  Request for transaction data on a one-way connection>>
  1218.  
  1219.    Generally, communication between two exterior routers is
  1220.    bidirectional-that is, two one-way connections exist between the
  1221.    exterior routers, with each exterior router acting as the data sender
  1222.    on one connection and the data receiver on the other. Thus, each
  1223.    exterior router can send its routing information to the other.
  1224.  
  1225.    Initial Information Exchange
  1226.  
  1227.    When an AppleTalk exterior router discovers another exterior router
  1228.    on the tunnel, it uses the underlying transport-layer service to open
  1229.    a connection with that exterior router. When using AURP-Tr, an
  1230.    exterior router opens this connection as a one-way connection.
  1231.  
  1232.  
  1233.  
  1234. Oppenheimer                                                    [Page 22]
  1235.  
  1236. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  1237.  
  1238.  
  1239.    Open Request Packet
  1240.  
  1241.    Once the data receiver opens a connection using the underlying
  1242.    transport, the data receiver sends an Open Request packet, or Open-
  1243.    Req, to the data sender. An Open-Req packet includes the following
  1244.    information:
  1245.  
  1246.    Send update information flags:  The states of the four send update
  1247.    information (SUI) flags indicate whether the data sender should send
  1248.    various types of update information over the connection. Typically,
  1249.    the four SUI flags are set to 1.
  1250.  
  1251.    Version number:  The version number field indicates the version of
  1252.    AURP used by the data receiver. The current version number of AURP is
  1253.    1.
  1254.  
  1255.    Data field:  The optional data field allows exterior routers with
  1256.    capabilities beyond those described in this document to notify other
  1257.    exterior routers about such options, by initiating option
  1258.    negotiation.  An exterior router that has similar capabilities
  1259.    indicates that it accepts the options, completing option negotiation.
  1260.    An exterior router that lacks such options ignores the information in
  1261.    the data field.
  1262.  
  1263.    Open Response Packet
  1264.  
  1265.    When an exterior router receives an Open-Req, it becomes the data
  1266.    sender and responds with an Open Response packet, or Open-Rsp, as
  1267.    follows:
  1268.  
  1269.       If the exterior router accepts the connection, it returns
  1270.       information about its setup in the Open-Rsp. An Open-Rsp also
  1271.       contains an optional data field. This data field indicates whether
  1272.       the exterior router accepts the options in the data field of the
  1273.       Open-Req to which it is responding.
  1274.  
  1275.       If the exterior router cannot accept the connection-for example,
  1276.       because the Open-Req does not contain the correct version number-it
  1277.       returns an error in the Open-Rsp and closes the transport-layer
  1278.       connection.
  1279.  
  1280.    Figure 3-6 shows a connection-opening dialog between a data sender
  1281.    and a data receiver.
  1282.  
  1283.                  <<Figure 3-6  Connection-opening dialog>>
  1284.  
  1285.  
  1286.  
  1287.  
  1288.  
  1289.  
  1290. Oppenheimer                                                    [Page 23]
  1291.  
  1292. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  1293.  
  1294.  
  1295.    Routing Information Request Packet
  1296.  
  1297.    Under AURP, once two exterior routers establish a connection, the
  1298.    data receiver can request the data sender to send its routing
  1299.    information by sending it a Routing Information Request packet, or
  1300.    RI-Req.
  1301.  
  1302.    Routing Information Response Packets
  1303.  
  1304.    When the data sender receives an RI-Req, it reliably sends a sequence
  1305.    of Routing Information Response packets, or RI-Rsp, to the exterior
  1306.    router requesting the information.
  1307.  
  1308.    The RI-Rsp packets provide a list of exported networks on the data
  1309.    sender's local internet and the distance of each network from the
  1310.    data sender. The data sender must finish sending RI-Rsp packets to
  1311.    the exterior router requesting routing information before it can send
  1312.    any other sequenced data over the connection. Figure 3-7 shows a
  1313.    routing-information request/response dialog between a data sender and
  1314.    a data receiver.
  1315.  
  1316.         <<Figure 3-7  Routing-information request/response dialog>>
  1317.  
  1318.    Zone Information Request Packet
  1319.  
  1320.    The data receiver can obtain zone information for known networks on
  1321.    the data sender's local internet at any time, by sending it a Zone
  1322.    Information Request packet, or ZI-Req. A ZI-Req lists the numbers of
  1323.    networks for which the data receiver is requesting zone information.
  1324.  
  1325.    IMPORTANT: To prevent other exterior routers on a tunnel from sending
  1326.    endless streams of ZI-Req packets across the tunnel-causing what is
  1327.    referred to as a ZIP storm-an exterior router must not export
  1328.    information about a network until it has a complete zone list for
  1329.    that network.
  1330.  
  1331.    Zone Information Response Packets
  1332.  
  1333.    When the data sender receives a ZI-Req, it responds by sending
  1334.    unsequenced Zone Information Response packets, or ZI-Rsp, to the data
  1335.    receiver. Zone information is transaction data-thus, its reliable
  1336.    delivery is not guaranteed. Figure 3-8 shows a zone-information
  1337.    request/response dialog between a data sender and a data receiver.
  1338.  
  1339.          <<Figure 3-8  Zone-information request/response dialog>>
  1340.  
  1341.  
  1342.  
  1343.  
  1344.  
  1345.  
  1346. Oppenheimer                                                    [Page 24]
  1347.  
  1348. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  1349.  
  1350.  
  1351.    Recovering Lost Zone Information
  1352.  
  1353.    A data receiver enters a network-to-zone list association in its
  1354.    routing table for each network for which it receives a ZI-Rsp packet.
  1355.    If a data receiver that requested zone information for a network does
  1356.    not receive a complete zone list for that network, it must retransmit
  1357.    ZI-Req packets, requesting zone information for that network, until
  1358.    it receives that network's complete zone information.
  1359.  
  1360.    To determine if any ZI-Rsp packets were lost, the data receiver
  1361.    periodically scans its routing table for networks for which the
  1362.    associated zone lists are incomplete-that is, for zone lists that do
  1363.    not include all zones associated with the networks. The data receiver
  1364.    sends a ZI-Req to each data sender from which it received incomplete
  1365.    zone information, listing the numbers of networks for which it has
  1366.    incomplete zone lists. The data sender responds to zone information
  1367.    requests by sending ZI-Rsp packets containing the requested
  1368.    information to the data receiver.
  1369.  
  1370.    Using AURP-Tr for Initial Information Exchange
  1371.  
  1372.    The following sections describe the use of AURP-Tr-the default
  1373.    transport-layer service for AURP-for initial information exchange.
  1374.  
  1375.    OPEN REQUEST PACKET: An exterior router sends an Open-Req packet to
  1376.  
  1377.       request that an AURP-Tr one-way connection with another exterior
  1378.       router be established
  1379.  
  1380.       specify the connection ID for that connection
  1381.  
  1382.       pass the AURP version number, SUI flags, and optional data to the
  1383.       other exterior router
  1384.  
  1385.    If the exterior router does not receive an Open-Rsp from the exterior
  1386.    router to which it sent an Open-Req, it must retransmit the Open-Req.
  1387.  
  1388.    OPEN RESPONSE PACKET: When using AURP-Tr, an exterior router sends an
  1389.    Open-Rsp to
  1390.  
  1391.       acknowledge that a one-way connection has been established
  1392.  
  1393.       reject a connection
  1394.  
  1395.       return information about its environment, as well as any optional
  1396.       data, to the exterior router from which it received an Open-Req
  1397.  
  1398.  
  1399.  
  1400.  
  1401.  
  1402. Oppenheimer                                                    [Page 25]
  1403.  
  1404. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  1405.  
  1406.  
  1407.    If an exterior router receives an Open-Req on a one-way connection
  1408.    that is already open-that is, if it receives an Open-Req with the
  1409.    same connection ID as an open one-way connection-an Open-Rsp sent
  1410.    previously may have been lost. The exterior router receiving the
  1411.    duplicate Open-Req should send a duplicate Open-Rsp to the sending
  1412.    exterior router, unless it has already received some other packet on
  1413.    the connection-such as an RI-Req-indicating the existence of a fully
  1414.    established connection.
  1415.  
  1416.    ROUTING INFORMATION RESPONSE PACKETS: When responding to a request
  1417.    for routing information using AURP-Tr, an exterior router sends a
  1418.    sequence of RI-Rsp packets to the exterior router requesting the
  1419.    information.  However, an exterior router's complete list of network
  1420.    numbers often fits in a single RI-Rsp packet. Each RI-Rsp packet
  1421.    contains the following information:
  1422.  
  1423.    Connection ID:  The connection ID identifies the specific one-way
  1424.    connection to which a packet belongs.
  1425.  
  1426.    Sequence number:  The sequence number identifies an individual packet
  1427.    on a connection. Packets on a connection are numbered starting with
  1428.    the number 1.
  1429.  
  1430.    The data sender sending routing information must wait for the data
  1431.    receiver to acknowledge that it has received each RI-Rsp packet in
  1432.    the sequence-by sending an RI-Ack packet-before sending the next RI-
  1433.    Rsp packet. Each RI-Rsp contains a flag that indicates whether it is
  1434.    the last packet in the sequence. In the last RI-Rsp in the sequence,
  1435.    this flag is set to 1. If the data sender receives no acknowledgment
  1436.    of an RI-Rsp from the data receiver within a specified period of
  1437.    time, it must retransmit the RI-Rsp.
  1438.  
  1439.    ROUTING INFORMATION RESPONSE PACKETS: When an exterior router
  1440.    receives an RI-Rsp, it verifies the packet's connection ID and
  1441.    sequence number.  The connection ID must be the same as that in the
  1442.    Open-Req. The sequence number must be either
  1443.  
  1444.       the last sequence number received, indicating that the previous
  1445.       acknowledgment was lost or delayed, and that this is a duplicate
  1446.       RI-Rsp the next number in the sequence, indicating that this
  1447.       RI-Rsp contains new routing information
  1448.  
  1449.    If the connection ID or sequence number is invalid, the data receiver
  1450.    discards the packet. Figure 3-9 shows a dialog between a data sender
  1451.    and a data receiver in which the data receiver requests routing
  1452.    information, the data sender responds by sending its routing
  1453.    information, and the data receiver acknowledges the data sender's
  1454.    response. If the data sender receives no acknowledgment, it sends
  1455.  
  1456.  
  1457.  
  1458. Oppenheimer                                                    [Page 26]
  1459.  
  1460. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  1461.  
  1462.  
  1463.    duplicate RI-Rsp packets until the data receiver responds with an
  1464.    acknowledgment.
  1465.  
  1466.      <<Figure 3-9 Routing-information request/response/acknowledgment
  1467.                                  dialog>>
  1468.  
  1469.    Once the data receiver has verified the information in the RI-Rsp, it
  1470.    responds with a Routing Information Acknowledgment packet, or RI-Ack,
  1471.    which contains the following information:
  1472.  
  1473.    Connection ID:  The connection ID is the same as that in the RI-Rsp
  1474.    packet.
  1475.  
  1476.    Sequence number:  The sequence number is the same as that in the RI-
  1477.    Rsp packet.
  1478.  
  1479.    Send zone information flag:  The state of the send zone information
  1480.    (SZI) flag in an RI-Ack packet indicates whether the RI-Ack packet
  1481.    doubles as a ZI-Req packet. If the SZI flag is set to 1, the data
  1482.    receiver sends the zone information associated with the networks
  1483.    about which it sent routing information in the previous RI-Rsp.
  1484.  
  1485.    Figure 3-10 shows a data receiver sending zone information to a data
  1486.    sender in response to a ZI-Req and in response to an RI-Ack, which
  1487.    optimizes the data flow.
  1488.  
  1489.    When the data sender receives an RI-Ack, it verifies that the RI-Ack
  1490.    corresponds to the outstanding RI-Rsp-that is, both packets have the
  1491.    same connection ID and sequence number. Once the data sender has
  1492.    verified the information in the RI-Ack, it responds by sending the
  1493.    next RI-Rsp in the sequence, if any.
  1494.  
  1495.    <<Figure 3-10  Nonoptimized and optimized flows of zone information>>
  1496.  
  1497.    ZONE INFORMATION RESPONSE PACKETS: If the data sender receives an
  1498.    RI-Ack with its SZI flag set to 1, it responds by sending ZI-Rsp
  1499.    packets that contain the zone information associated with the
  1500.    networks about which it sent routing information in the RI-Rsp being
  1501.    acknowledged-just as it would if it received a ZI-Req for those
  1502.    networks.
  1503.  
  1504.    The data sender sends RI-Rsp and ZI-Rsp packets as independent data
  1505.    streams. It sends RI-Rsp packets as sequenced data and ZI-Rsp packets
  1506.    as transaction data. If the data sender receives an RI-Ack with its
  1507.    SZI flag set to 1, it sends an unsequenced series of ZI-Rsp packets
  1508.    that contain the following information:
  1509.  
  1510.    Connection ID:  The connection ID is the same as that in the
  1511.  
  1512.  
  1513.  
  1514. Oppenheimer                                                    [Page 27]
  1515.  
  1516. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  1517.  
  1518.  
  1519.    associated RI-Req.
  1520.  
  1521.    Network number and zone list tuples: The exterior router sends the
  1522.    zone information associated with each network number in the
  1523.    corresponding RI-Rsp.
  1524.  
  1525.    Reobtaining Routing Information
  1526.  
  1527.    An exterior router can reobtain another exterior router's complete
  1528.    routing information at any time, by sending an RI-Req packet. An
  1529.    exterior router might need to reobtain complete routing information
  1530.    for a one-way connection on which it is the data receiver under the
  1531.    following circumstances:
  1532.  
  1533.       During the initial routing-information exchange, the exterior
  1534.       router set the SUI flags in the Open-Req to disable updates. The
  1535.       exterior router can subsequently poll the other exterior router on
  1536.       the connection by sending an RI-Req to that exterior router to
  1537.       determine whether any of its routing information has changed.
  1538.  
  1539.       The exterior router set the SUI flags to request updates, but
  1540.       suspects that the routing information for the other exterior router
  1541.       on the connection is incorrect or obsolete. The exterior router
  1542.       should send an RI-Req to the other exterior router to obtain its
  1543.       complete, updated routing information.
  1544.  
  1545.    Whenever an exterior router receives an RI-Req from an exterior
  1546.    router requesting updated routing information, it responds by sending
  1547.    RI-Rsp packets, just as it does when it first receives an RI-Req. The
  1548.    data sender also resets the SUI flags for that one-way connection, so
  1549.    they correspond to those in the RI-Req.
  1550.  
  1551.    If the data sender is sending other sequenced update information when
  1552.    it receives an RI-Req, it cannot respond to the RI-Req until the data
  1553.    receiver acknowledges the last outstanding packet in the sequence.
  1554.    If AURP uses an underlying transport-layer service that does not
  1555.    provide reliable delivery, such as AURP-Tr, it may be necessary for
  1556.    the data receiver to retransmit an RI-Req.
  1557.  
  1558.    Updating Routing Information
  1559.  
  1560.    Once an exterior router receives the routing and zone information for
  1561.    another exterior router's local internet, if the receiving exterior
  1562.    router has set the SUI flags in the Open-Req to request updates, the
  1563.    data sender notifies the data receiver of any subsequent changes to
  1564.    that information.
  1565.  
  1566.  
  1567.  
  1568.  
  1569.  
  1570. Oppenheimer                                                    [Page 28]
  1571.  
  1572. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  1573.  
  1574.  
  1575.    Informed-Routers List
  1576.  
  1577.    An exterior router maintains an informed-routers list containing the
  1578.    network address of each exterior router that has requested dynamic
  1579.    updating of routing information. Once an exterior router has sent
  1580.    routing information for its local internet to other exterior routers
  1581.    on the tunnel, it must reliably send updated routing information to
  1582.    all accessible exterior routers in its informed-routers list whenever
  1583.    its routing information changes.
  1584.  
  1585.    Sending Routing Information Update Packets
  1586.  
  1587.    An exterior router communicates changes in its routing information by
  1588.    sending Routing Information Update, or RI-Upd, packets to another
  1589.    exterior router. When the routing information for an exterior
  1590.    router's local internet changes, the exterior router need not send an
  1591.    RI-Upd immediately. Generally, an exterior router buffers the update
  1592.    information, then sends updates periodically. The exterior router
  1593.    must wait at least an update interval between sending updates. The
  1594.    value of this update interval
  1595.  
  1596.       cannot be less than ten seconds
  1597.  
  1598.       should be specifiable by a network administrator
  1599.  
  1600.    It is possible that more than one update event for a particular
  1601.    network might occur within one update interval. One of these events
  1602.    might supercede another-for example, a Network Added event followed
  1603.    by a Network Deleted event for the same network. In this case, the
  1604.    exterior router can represent the two events logically as one event.
  1605.    Under AURP, an exterior router can have only one event pending for a
  1606.    given network.  An exterior router can combine any series of events
  1607.    for a network into a single pending event. In Figure 3-11, a state
  1608.    diagram shows the update event that an exterior router should have
  1609.    pending for a network, based on the other events that have occurred
  1610.    during the update interval.
  1611.  
  1612.       <<Figure 3-11  A state diagram showing pending update events>>
  1613.  
  1614.    Four of the states correspond to four pending update events. Two
  1615.    states indicate that no update event is pending:
  1616.  
  1617.       Net Up-indicates that no update event is pending for a network
  1618.       in the exterior router's local internet
  1619.  
  1620.       Net Down-indicates that no update event is pending for a network in
  1621.       another exterior router's local internet or the network does not
  1622.       exist
  1623.  
  1624.  
  1625.  
  1626. Oppenheimer                                                    [Page 29]
  1627.  
  1628. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  1629.  
  1630.  
  1631.  
  1632.    A single RI-Upd packet may contain different types of update events-
  1633.    for example, several Network Added events and several Network Deleted
  1634.    events. For information about update events, see the section
  1635.    "Routing-Information Update Events" later in this chapter.
  1636.  
  1637.    A data sender should send an RI-Upd packet to an exterior router in
  1638.    its informed-routers list only if the packet contains one or more
  1639.    update events of a type indicated by the SUI flags of the last Open-
  1640.    Req or RI-Req received from that exterior router. Because an RI-Upd
  1641.    that contains one or more events of a type requested by an exterior
  1642.    router may also contain events of types not requested, an exterior
  1643.    router must be able to handle events of all types. Thus, a data
  1644.    sender can send an RI-Upd that contains various types of update
  1645.    events to all exterior routers that have requested update events of
  1646.    any of those types.
  1647.  
  1648.    Sending Updates Following the Initial Exchange of Routing Information
  1649.  
  1650.    While a data sender has update events pending-that is, when update
  1651.    events have occurred but the data sender has not yet sent RI-Upd
  1652.    packets for those events-another exterior router may establish a new
  1653.    connection with the data sender. The data sender must present
  1654.    consistent routing information to all exterior routers on the tunnel,
  1655.    on both existing connections and any new connections. For example, if
  1656.    a pending update event indicated that a new network had become
  1657.    available, the newly connected exterior router could be informed of
  1658.    that network's presence on the internet either by
  1659.  
  1660.       sending it an RI-Rsp packet including routing information for the
  1661.       new network
  1662.  
  1663.       sending it an RI-Rsp packet that does not include routing
  1664.       information for the new network, then sending it the RI-Upd packet
  1665.       that includes the pending update event
  1666.  
  1667.    AURP does not specify a scheme for sending update information
  1668.    following the initial exchange of routing information on a new
  1669.    connection.  However, the Appendix, "Implementation Details,"
  1670.    describes one possible method of doing this.
  1671.  
  1672.    Using AURP-Tr to Update Routing Information
  1673.  
  1674.    The following sections describe the use of AURP-Tr for sending
  1675.    routing-information updates.
  1676.  
  1677.    ROUTING INFORMATION UPDATE PACKETS: Each RI-Upd packet contains the
  1678.    following information:
  1679.  
  1680.  
  1681.  
  1682. Oppenheimer                                                    [Page 30]
  1683.  
  1684. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  1685.  
  1686.  
  1687.    Connection ID:  The connection ID identifies the specific one-way
  1688.    connection to which the RI-Upd belongs.
  1689.  
  1690.    Sequence number:  The sequence number identifies an individual RI-Upd
  1691.    on a connection.
  1692.  
  1693.    If an update cannot be contained in one RI-Upd packet, the data
  1694.    sender must send a sequence of RI-Upd packets. While the data sender
  1695.    need not wait for the duration of an update interval before sending
  1696.    each RI-Upd packet in a sequence, it must wait for the data receiver
  1697.    to acknowledge that it has received the RI-Upd packet that is
  1698.    currently outstanding before sending the next RI-Upd packet in the
  1699.    sequence.
  1700.  
  1701.    If the data sender sending an RI-Upd does not receive an
  1702.    acknowledgment, or RI-Ack, from the data receiver within a specified
  1703.    period of time, the data sender should periodically retransmit the
  1704.    RI-Upd until it receives an acknowledgment from the data receiver.
  1705.    Once the data sender retransmits the RI-Upd a specified number of
  1706.    times, if it does not receive an RI-Ack, it should assume that the
  1707.    one-way connection on which it is the data sender is down. For more
  1708.    information about routers going down, see the section "Using AURP-Tr
  1709.    to Detect Routers Going Down" later in this chapter.
  1710.  
  1711.    ROUTING INFORMATION ACKNOWLEDGMENT PACKET: When a data receiver
  1712.    receives an RI-Upd, it verifies the packet's connection ID and
  1713.    sequence number.  The connection ID must be the same as that in the
  1714.    Open-Req for the connection. The sequence number must be either:
  1715.  
  1716.       the last sequence number received, indicating that the previous
  1717.       acknowledgment was lost or delayed, and that this is a duplicate
  1718.       RI-Upd
  1719.  
  1720.       the next number in the sequence, indicating that the RI-Upd
  1721.       contains new routing information
  1722.  
  1723.    If the sequence number has any other value, the data receiver ignores
  1724.    the RI-Upd. Once the data receiver has verified the RI-Upd packet's
  1725.    connection ID and sequence number, it responds by sending a Routing
  1726.    Information Acknowledgment packet, or RI-Ack, which contains the
  1727.    following information:
  1728.  
  1729.    Connection ID:  The connection ID is the same as that in the RI-Upd
  1730.    packet.
  1731.  
  1732.    Sequence number:  The sequence number is the same as that in the RI-
  1733.    Upd packet.
  1734.  
  1735.  
  1736.  
  1737.  
  1738. Oppenheimer                                                    [Page 31]
  1739.  
  1740. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  1741.  
  1742.  
  1743.    Figure 3-12 shows a data receiver responding to an RI-Upd by sending
  1744.    an RI-Ack.
  1745.  
  1746.     <<Figure 3-12  A routing-information update/acknowledgment dialog>>
  1747.  
  1748.    When a data sender receives an RI-Ack, it verifies that the RI-Ack
  1749.    corresponds to the outstanding RI-Upd-that is, both packets have the
  1750.    same connection ID and sequence number. Once the data sender has
  1751.    verified the information in the RI-Ack, it responds by sending the
  1752.    next RI-Upd in the sequence, if any.
  1753.  
  1754.    Routing-Information Update Events
  1755.  
  1756.    An RI-Upd packet may contain any of five different types of routing-
  1757.    information update events. The following sections describe these
  1758.    events.
  1759.  
  1760.    NETWORK ADDED EVENT: An exterior router sends a Network Added (NA)
  1761.    event under the following circumstances:
  1762.  
  1763.       A new network that appears in the exterior router's routing table
  1764.       is in the exterior router's local internet and is not hidden-that
  1765.       is, it is an exported network.
  1766.  
  1767.       The port through which an exterior router accesses a network
  1768.       changes from a tunneling port to another port on the router
  1769.       and the network is not hidden.
  1770.  
  1771.    If a network in an exterior router's routing table becomes accessible
  1772.    across the tunnel, the exterior router does not send an NA event. An
  1773.    exterior router sends only split-horizoned routing information to
  1774.    other exterior routers on the tunnel.
  1775.  
  1776.    An NA event lists the network numbers associated with the new network
  1777.    and the network's distance in hops. Another exterior router can
  1778.    request the zone information associated with the new network at any
  1779.    time by sending a ZI-Req, once it receives an RI-Upd containing an NA
  1780.    event for the network.
  1781.  
  1782.    When using AURP-Tr, an exterior router can request zone information
  1783.    for new networks by setting the SZI bit in an RI-Ack that it sends in
  1784.    response to an RI-Upd. If a data sender receives an RI-Ack with its
  1785.    SZI flag set to 1, the data sender sends the zone information
  1786.    associated with each new network for which it sent an NA event in the
  1787.    RI-Upd.
  1788.  
  1789.    Figure 3-13 shows a data receiver responding to an RI-Upd by sending
  1790.    an RI-Ack in which the SZI bit is set to 1, optimizing the flow of
  1791.  
  1792.  
  1793.  
  1794. Oppenheimer                                                    [Page 32]
  1795.  
  1796. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  1797.  
  1798.  
  1799.    zone information by causing the data sender to respond with a ZI-Rsp.
  1800.  
  1801.           <<Figure 3-13  An optimized flow of zone information>>
  1802.  
  1803.    NETWORK DELETED EVENT: An exterior router sends a Network Deleted
  1804.    (ND) event if an exported network that was formerly accessible
  1805.    through its local internet no longer appears in its routing table. An
  1806.    ND event lists the network numbers associated with the deleted
  1807.    network.
  1808.  
  1809.    NETWORK ROUTE CHANGE EVENT: An exterior router sends a Network Route
  1810.    Change (NRC) event if the path to an exported network through its
  1811.    local internet changes to a path through a tunneling port, causing
  1812.    split-horizoned processing to eliminate that network's routing
  1813.    information. An NRC event lists the network numbers associated with
  1814.    the network to which the path changed.
  1815.  
  1816.    NETWORK DISTANCE CHANGE EVENT: An exterior router sends a Network
  1817.    Distance Change (NDC) event if the distance to an exported network
  1818.    accessible through its local internet changes. An NDC event indicates
  1819.    the network to which the distance changed and the network's distance
  1820.    in hops. An exterior router must send an NDC event even if the
  1821.    distance to a network changes to 15 hops. The exterior router that
  1822.    receives an NDC event with a hop count of 15 should process that
  1823.    event just as it would an ND event.
  1824.  
  1825.    ZONE NAME CHANGE EVENT: This event is reserved for future use.
  1826.  
  1827.    Processing Update Events
  1828.  
  1829.    According to the architectural model, a data receiver that is
  1830.    processing an event contained in an RI-Upd packet updates the
  1831.    corresponding information in its central routing table. For example,
  1832.    if a data receiver receives an RI-Upd containing an ND event or an
  1833.    NRC event, it sets the corresponding network's routing-table entry to
  1834.    BAD. The data receiver then initiates a notify-neighbor process, by
  1835.    sending RTMP data packets that identify bad entries in its routing
  1836.    table to routers on its local internet.
  1837.  
  1838.    Processing Inconsistent Update Events
  1839.  
  1840.    If the data receiver's copy of the data sender's routing table does
  1841.    not match that in the data sender's current routing table, it is
  1842.    possible that the data receiver might receive an RI-Upd containing an
  1843.    event that is incongruous with its current routing-table information.
  1844.    For example, this might occur if the information in the data sender's
  1845.    routing table were changing during its initial exchange of routing
  1846.    information with the data receiver, as described in the section
  1847.  
  1848.  
  1849.  
  1850. Oppenheimer                                                    [Page 33]
  1851.  
  1852. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  1853.  
  1854.  
  1855.    "Sending Updates Following the Initial Exchange of Routing
  1856.    Information" earlier in this chapter. The data receiver might receive
  1857.    an RI-Upd that contains an ND, NRC, or NDC event for a network not
  1858.    known to be in the data sender's routing table; or an NA event for a
  1859.    network already known to be in its routing table. The data receiver
  1860.    should
  1861.  
  1862.       ignore ND and NRC events for unknown networks
  1863.  
  1864.       process an NDC event for an unknown network as an NA event
  1865.  
  1866.       process an NA event for a known network as an NDC event
  1867.  
  1868.    Maintaining a Central Routing Table
  1869.  
  1870.    According to the architectural model, an exterior router maintains a
  1871.    separate routing table for each other exterior router on a tunnel. In
  1872.    a typical implementation, however, an exterior router maintains a
  1873.    central routing table that contains information about each path to
  1874.    each network known to that exterior router-including its port, next
  1875.    internet router (IR), and distance in hops.
  1876.  
  1877.    If no loops exist across a tunnel, an exterior router can reach a
  1878.    network that is accessible through that tunnel through only one
  1879.    exterior router, as shown in Figure 3-14. Such a network is
  1880.    accessible neither through the exterior router's local internet nor
  1881.    through any other exterior router on the tunnel. Thus, the central
  1882.    routing table would contain only one path for that network.
  1883.  
  1884.    If a loop exists across a tunnel, an exterior router may be able to
  1885.    access a network through two or more exterior routers on the tunnel,
  1886.    or through both its local internet and an exterior router. Thus, when
  1887.    a loop exists across a tunnel, the central routing table may contain
  1888.    more than one path for each network. Figure 3-14 shows two examples
  1889.    of internets on which loops exist.
  1890.  
  1891.              <<Figure 3-14  Internets with and without loops>>
  1892.  
  1893.    Maintaining an Alternative-Paths List
  1894.  
  1895.    If a loop exists across a tunnel and an exterior router maintains a
  1896.    single central routing table, that table must include an
  1897.    alternative-paths list for each network known to the exterior router.
  1898.    This alternative-paths list contains the routing information that an
  1899.    exterior router might otherwise maintain in separate routing tables
  1900.    for the other exterior routers on a tunnel. An entry for each
  1901.    alternative path to a network consists of the address of the
  1902.    alternative next IR for that network and the network's distance
  1903.  
  1904.  
  1905.  
  1906. Oppenheimer                                                    [Page 34]
  1907.  
  1908. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  1909.  
  1910.  
  1911.    through that next IR.
  1912.  
  1913.    Because RTMP periodically retransmits information about alternative
  1914.    paths, the exterior router's alternative-paths list needs to provide
  1915.    information only about alternative paths to networks across tunneling
  1916.    ports. Thus, the alternative-paths list for a network provides
  1917.    complete information about all paths to that network across tunnels-
  1918.    but not necessarily about all paths through the exterior router's
  1919.    local internet.
  1920.  
  1921.    An exterior router must maintain an alternative-paths list, because
  1922.    once a data sender has reliably sent routing information to a data
  1923.    receiver, the data sender does not retransmit that information. Even
  1924.    though a path may not currently be the optimal path to a network, an
  1925.    exterior router must maintain information about that path, in the
  1926.    event that it later becomes the optimal path.
  1927.  
  1928.    NOTE:  Zone information is unaffected by the path taken to a network.
  1929.    Therefore, an exterior router need not maintain duplicate zone
  1930.    information in the alternative-paths list.
  1931.  
  1932.    Using the Alternative-Paths List in Event Processing
  1933.  
  1934.    An exterior router uses its alternative-paths list when processing
  1935.    events.
  1936.  
  1937.    PROCESSING A NETWORK ADDED EVENT: If an exterior router receives an
  1938.    NA event, it searches its central routing table for the network
  1939.    indicated in the event.
  1940.  
  1941.       If the exterior router finds no entry for that network in its
  1942.       central routing table, it creates a new entry using the routing
  1943.       information contained in the NA event.
  1944.  
  1945.       If the exterior router finds an existing entry for that network in
  1946.       its central routing table and the next IR for that entry is not
  1947.       the exterior router that sent the event, it determines whether the
  1948.       NA event provides a better path to that network.
  1949.  
  1950.          If the NA event provides a better path to the network or the
  1951.          state of the routing-table entry for that network is BAD, the
  1952.          exterior router replaces the current entry with the routing
  1953.          information contained in the NA event. In the current entry, if
  1954.          the path to the network is through a tunnel, as indicated by
  1955.          the next IR, the exterior router transfers the current entry to
  1956.          the network's alternative-paths list.
  1957.  
  1958.          If the NA event does not provide a better path to the network,
  1959.  
  1960.  
  1961.  
  1962. Oppenheimer                                                    [Page 35]
  1963.  
  1964. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  1965.  
  1966.  
  1967.          the exterior router adds the routing information contained in
  1968.          the NA event to the alternative-paths list for the network.
  1969.  
  1970.       If the exterior router finds an existing entry for that network,
  1971.       in which the next IR is the exterior router that sent the event,
  1972.       the exterior router should process the NA event just as it would
  1973.       an NDC event.
  1974.  
  1975.    PROCESSING A NETWORK DELETED EVENT:  If an exterior router receives
  1976.    an ND event, it searches its central routing table for the network
  1977.    indicated in the event.
  1978.  
  1979.       If the exterior router finds no entry for that network in its
  1980.       central routing table, it ignores the event. See the section
  1981.       "Processing Inconsistent Update Events" earlier in this chapter.
  1982.  
  1983.       If the exterior router that is the data receiver determines that
  1984.       the exterior router that sent the ND event is the next IR for that
  1985.       network and there is an alternative-paths list for the network, the
  1986.       data receiver replaces the network's current routing information
  1987.       with the entry in the network's alternative-paths list that
  1988.       provides the shortest distance to that network and removes that
  1989.       entry from the network's alternative-paths list. If the network's
  1990.       alternative-paths list contains more than one entry providing the
  1991.       distance that constitutes the shortest distance to the network, the
  1992.       data receiver can use any of those entries.
  1993.  
  1994.       If the exterior router that is the data receiver determines that
  1995.       the exterior router that sent the ND event is the next IR for that
  1996.       network and there is no alternative-paths list for the network, the
  1997.       data receiver sets the network's routing-table entry to BAD, then
  1998.       initiates a notify-neighbor process.
  1999.  
  2000.       If the exterior router that is the data receiver determines that
  2001.       the exterior router that sent the ND event is not the next IR for
  2002.       that network, the data receiver searches that network's
  2003.       alternative-paths list for an entry in which the next IR is the
  2004.       data sender and removes that entry from the list.
  2005.  
  2006.    PROCESSING A NETWORK ROUTE CHANGE EVENT: If an exterior router
  2007.    receives an NRC event, it processes that event as an ND event.
  2008.    Generally, an NRC event should not cause an exterior router to set
  2009.    the state of a network's routing-table entry to BAD. An NRC event
  2010.    indicates that the data sender has an alternative path to the network
  2011.    through the tunnel.  The data receiver either is already aware of or
  2012.    will soon discover this alternative path.
  2013.  
  2014.  
  2015.  
  2016.  
  2017.  
  2018. Oppenheimer                                                    [Page 36]
  2019.  
  2020. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  2021.  
  2022.  
  2023.    PROCESSING A NETWORK DISTANCE CHANGE EVENT: If an exterior router
  2024.    receives an NDC event with a hop count of 15, it processes that event
  2025.    just as it would an ND event. Otherwise, it searches its central
  2026.    routing table for the network indicated in the event.
  2027.  
  2028.       If the exterior router finds no entry for that network in its
  2029.       central routing table, it processes that event as an NA event.
  2030.  
  2031.       If the exterior router that is the data receiver determines that
  2032.       the exterior router that sent the NDC event is the next IR for the
  2033.       network, the data receiver replaces the distance to that network
  2034.       that is currently in its central routing table with the distance
  2035.       indicated in the NDC event.
  2036.  
  2037.       If the exterior router that is the data receiver determines that
  2038.       the exterior router that sent the NDC event is not the next IR for
  2039.       the network, the data receiver
  2040.  
  2041.       replaces the distance in the corresponding entry in the network's
  2042.       alternative-paths list with the distance indicated in the NDC event
  2043.       creates an entry in the alternative-paths list that contains the
  2044.       routing information in the NDC event, if it finds no entry for that
  2045.       network in the alternative-paths list
  2046.  
  2047.    Finally, regardless of whether the central routing table indicates
  2048.    that the exterior router that sent the NDC event is the network's
  2049.    next IR, the data receiver compares the distances in entries in the
  2050.    network's alternative-paths list to the distance in its central
  2051.    routing table. If an entry in the alternative-paths list contains a
  2052.    shorter path to the network, the exterior router transfers that entry
  2053.    to the central routing table. This ensures that the exterior router's
  2054.    central routing table contains the shortest path to the network.
  2055.  
  2056.       If the data receiver replaces the entry currently in its central
  2057.       routing table with that in the NDC event and the current entry
  2058.       provides a path to the network through a tunnel, the data receiver
  2059.       transfers the current entry to the network's alternative-paths
  2060.       list.
  2061.  
  2062.       If the data receiver transfers an entry in the network's
  2063.       alternative-paths list to its central routing table, it removes
  2064.       that entry from the alternative-paths list.
  2065.  
  2066.    RESPONDING TO EVENTS IN THE LOCAL INTERNET: An exterior router that
  2067.    uses AURP must respond appropriately to events that originate in its
  2068.    local internet. Such events occur when the routing information for a
  2069.    network in the exterior router's local internet changes and another
  2070.    path to that network exists through the tunnel. An exterior router
  2071.  
  2072.  
  2073.  
  2074. Oppenheimer                                                    [Page 37]
  2075.  
  2076. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  2077.  
  2078.  
  2079.    handles such events as follows:
  2080.  
  2081.       If the exterior router replaces the current routing-table entry for
  2082.       a network with routing information provided by an event originating
  2083.       in its local internet-that is, provided by RTMP-and the current
  2084.       path to the network is through a tunnel, the exterior router
  2085.       transfers the current entry to the network's alternative-paths
  2086.       list.
  2087.  
  2088.       If the exterior router sets the state of a routing-table entry to
  2089.       BAD or removes an entry from its central routing table, the
  2090.       exterior router replaces that entry with the entry in the
  2091.       alternative-paths list that provides the shortest distance to the
  2092.       network in the entry being replaced.
  2093.  
  2094.       If the distance to a network in the exterior router's local
  2095.       internet changes, the exterior router compares the distances in
  2096.       entries in the network's alternative-paths list to the distance in
  2097.       its central routing table. If an entry in the alternative-paths
  2098.       list provides a shorter distance to the network, the exterior
  2099.       router transfers that entry to its central routing table. This
  2100.       ensures that the exterior router's central routing table contains
  2101.       the shortest path to the network.
  2102.  
  2103.    Router-Down Notification
  2104.  
  2105.    Prior to going down, or becoming inactive, an exterior router must
  2106.    notify all other exterior routers in its informed-routers list that
  2107.    it is going down. An exterior router does this by using the
  2108.    underlying transport-layer service to close its connection with each
  2109.    exterior router.
  2110.  
  2111.    Sending a Router Down Packet
  2112.  
  2113.    Optionally, an exterior router can send a Router Down packet, or RD
  2114.    packet, to each exterior router before it goes down. An RD packet
  2115.    contains an error code that indicates the exterior router's reason
  2116.    for terminating its connection with each exterior router.
  2117.  
  2118.    Generally, only the exterior router functioning as the data sender on
  2119.    a one-way connection sends RD packets. However, if just a single
  2120.    one-way connection exists between two exterior routers, the exterior
  2121.    router functioning as the data receiver on that connection can send
  2122.    an RD packet.
  2123.  
  2124.    Using AURP-Tr to Notify Other Routers That a Router Is Going Down
  2125.  
  2126.    When using AURP-Tr, an exterior router sends an RD packet to
  2127.  
  2128.  
  2129.  
  2130. Oppenheimer                                                    [Page 38]
  2131.  
  2132. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  2133.  
  2134.  
  2135.       notify another exterior router that it is terminating a connection
  2136.  
  2137.       pass an error code that indicates its reason for terminating the
  2138.       connection
  2139.  
  2140.    As shown in Figure 3-15, once the data receiver verifies the RD
  2141.    packet's connection ID, it acknowledges that it received the RD
  2142.    packet by sending an RI-Ack. Then, the data sender terminates the
  2143.    connection.
  2144.  
  2145.                 <<Figure 3-15  Acknowledging an RD packet>>
  2146.  
  2147.    If a Router Goes Down Without Notifying Other Routers
  2148.  
  2149.    If an exterior router crashes or goes down without sending an RD
  2150.    packet, or becomes inaccessible due to a network problem, other
  2151.    exterior routers on the tunnel must be able to discover that the
  2152.    exterior router is down.  Generally, the underlying transport-layer
  2153.    service provides a mechanism for informing an exterior router that an
  2154.    exterior router in its informed-routers list has gone down or become
  2155.    inaccessible.
  2156.  
  2157.    If an exterior router determines that another exterior router is
  2158.    down, it must
  2159.  
  2160.       remove that exterior router from its informed-routers list
  2161.  
  2162.       remove that exterior router's routing information from all of its
  2163.       routing tables
  2164.  
  2165.       close any one-way connections with that exterior router
  2166.  
  2167.    If an exterior router rediscovers an exterior router that had
  2168.    previously gone down, it must again exchange initial routing
  2169.    information with that exterior router.
  2170.  
  2171.    Using AURP-Tr to Detect Routers Going Down
  2172.  
  2173.    An exterior router using AURP-Tr associates a last-heard-from timer
  2174.    with each exterior router from which it has received routing
  2175.    information-that is, with each one-way connection on which it is the
  2176.    data receiver. Each time the exterior router receives an RI-Rsp, RI-
  2177.    Upd, or ZI-Rsp over a connection-verifying that its connection with
  2178.    the data sender is still active-it resets the last-heard-from timer
  2179.    for that connection.
  2180.  
  2181.    For each one-way connection on which it is the data receiver, the
  2182.    exterior router has a last-heard-from timeout value. If a
  2183.  
  2184.  
  2185.  
  2186. Oppenheimer                                                    [Page 39]
  2187.  
  2188. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  2189.  
  2190.  
  2191.    connection's last-heard-from timer reaches that timeout value, the
  2192.    data receiver sends a Tickle packet over that connection. If the data
  2193.    sender on the connection is still accessible, it responds with a
  2194.    Tickle-Ack, as shown in Figure 3-16. When the data receiver receives
  2195.    the Tickle-Ack, it resets the last-heard-from timer for that
  2196.    connection. If the data receiver receives no Tickle-Ack-even after
  2197.    retransmitting the Tickle several times-it assumes that the
  2198.    connection is down.
  2199.  
  2200.               <<Figure 3-16  Acknowledging a Tickle packet>>
  2201.  
  2202.    If the exterior router determines that the connection is down and an
  2203.    associated one-way connection exists on which it is the data sender,
  2204.    it should send a null RI-Upd over that connection to determine
  2205.    whether that one-way connection is still active.
  2206.  
  2207.    If the data receiver on the connection is still accessible, it
  2208.    responds with an RI-Ack, as shown in Figure 3-17. If the data sender
  2209.    receives no RI-Ack-even after retransmitting the null RI-Upd several
  2210.    times-it determines that the one-way connection on which it is the
  2211.    data sender is also down.
  2212.  
  2213.               <<Figure 3-17  Acknowledging an RI-Upd packet>>
  2214.  
  2215.    The value of the last-heard-from timeout should be configurable. The
  2216.    minimum last-heard-from timeout should be 30 seconds. If a
  2217.    connection's last-heard-from timeout is greater than two minutes-the
  2218.    tickle-before-data time-and the data receiver has not reset the
  2219.    connection's last-heard-from timer for at least this tickle-before-
  2220.    data time, the data receiver must send a Tickle to the data sender
  2221.    before forwarding an AppleTalk data packet to it. If the data sender
  2222.    on the connection is still accessible, it responds with a Tickle-Ack.
  2223.    When the data receiver receives the Tickle-Ack, it resets the last-
  2224.    heard-from timer for that connection. If the data receiver receives
  2225.    no Tickle-Ack, even after retransmitting the Tickle, it assumes that
  2226.    the data sender is no longer accessible and closes the connection.
  2227.  
  2228.    Obtaining Zone Information
  2229.  
  2230.    AURP supports two commands that allow an exterior router to obtain
  2231.    routing information for zones rather than for networks-the Get Domain
  2232.    Zone List (GDZL) command and the Get Zone Nets (GZN) command. These
  2233.    commands constitute request/response transactions, and are similar to
  2234.    ZI-Req and ZI-Rsp. An exterior router sends these commands
  2235.    unsequenced over a connection.
  2236.  
  2237.    NOTE:  Under AURP, the implementation of the Get Domain Zone List
  2238.    command and the Get Zone Nets command in an exterior router is
  2239.  
  2240.  
  2241.  
  2242. Oppenheimer                                                    [Page 40]
  2243.  
  2244. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  2245.  
  2246.  
  2247.    optional.  However, an exterior router must at least be able to
  2248.    return an error to a GDZL-Req or a GZN-Req.
  2249.  
  2250.    Get Domain Zone List Command
  2251.  
  2252.    The Get Domain Zone List command, or GDZL, allows an exterior router
  2253.    to obtain a zone list for an internet. As shown in Figure 3-18, GDZL
  2254.    functions similarly to the ZIP GetZoneList command. However, a GDZL-
  2255.    Rsp returns a split-horizoned zone list-that is, it returns only the
  2256.    zones in the exterior router's local internet, rather than the
  2257.    exterior router's entire zone list. A GDZL-Rsp does not return zones
  2258.    in networks that are accessible through the tunnel, unless those
  2259.    zones are also in networks that are accessible through the exterior
  2260.    router's local internet.
  2261.  
  2262.        <<Figure 3-18  Get Domain Zone List request/response dialog>>
  2263.  
  2264.    Get Zone Nets Command
  2265.  
  2266.    The Get Zone Nets command, or GZN, allows an exterior router to
  2267.    obtain a list of the networks in an exterior router's local internet
  2268.    that are associated with a particular zone name. As shown in Figure
  2269.    3-19, GZN functions similarly to ZI-Req and ZI-Rsp, but a GZN-Req
  2270.    packet contains a single zone name and GZN-Rsp packets contain
  2271.    network tuples that have the same format as the tuples in an RI-Rsp.
  2272.    A GZN-Rsp returns network tuples only for networks that are
  2273.    accessible through the exterior router's local internet.
  2274.  
  2275.           <<Figure 3-19  Get Zone Nets request/response dialog>>
  2276.  
  2277.    Using AURP-Tr to Process Sequence Numbers
  2278.  
  2279.    When an exterior router acting as a data receiver sends an Open-Req
  2280.    to establish a one-way connection, it expects the data sender to
  2281.    respond by sending sequenced data packets, starting with the sequence
  2282.    number 1. The data receiver's response to each packet that it
  2283.    receives depends on the packet's sequence number:
  2284.  
  2285.      Whenever the data receiver receives an RI-Rsp, RI-Upd, or RD packet
  2286.      that has the expected sequence number and connection ID, it sends
  2287.      an RI-Ack packet having that sequence number, then increases the
  2288.      sequence number that it expects by one, until the sequence number
  2289.      reaches 65,535. Sequence numbers wrap around and the sequence
  2290.      number 0 is reserved, so the sequence number 1 follows 65,535.
  2291.      Thus, when comparing sequence numbers, an exterior router
  2292.      interprets the sequence number 65,535 as one less than the sequence
  2293.      number 1.
  2294.  
  2295.  
  2296.  
  2297.  
  2298. Oppenheimer                                                    [Page 41]
  2299.  
  2300. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  2301.  
  2302.  
  2303.      If the data receiver expects sequence number n and receives a
  2304.      packet with the sequence number n-1, that packet was delayed and is
  2305.      a duplicate of another packet already received. The data receiver
  2306.      must retransmit an RI-Ack packet, because the data sender may not
  2307.      have received the RI-Ack packet previously sent-that is, the RI-Ack
  2308.      may have been lost.
  2309.  
  2310.      If the data receiver expects sequence number n and receives a
  2311.      packet with the sequence number n+1, it should discard the packet
  2312.      and terminate the one-way connection on which it is the data
  2313.      receiver.  Because AURP-Tr supports only one outstanding
  2314.      transaction at a time, the receipt of such a packet indicates that
  2315.      the connection is out of sync.
  2316.  
  2317.      If the data receiver expects sequence number n and receives a
  2318.      packet with a sequence number other than n-1, n, or n+1, the packet
  2319.      was delayed and is a duplicate of another packet already received.
  2320.      The data receiver need not send an RI-Ack, because the data sender
  2321.      must have received an RI-Ack for that sequence number prior to
  2322.      sending a packet with the sequence number n-1. The data receiver
  2323.      should discard the packet.
  2324.  
  2325.    NOTE:  If the sequence numbers have not wrapped around, a sequence
  2326.    number greater than n+1 indicates that the connection is out of sync.
  2327.  
  2328.    Using AURP-Tr to Process Connection IDs
  2329.  
  2330.    If an exterior router acting as either a data receiver or a data
  2331.    sender on a one-way connection receives a packet from an exterior
  2332.    router with which it has a one-way connection, it checks the
  2333.    connection ID in the packet to verify that the packet was sent on
  2334.    that connection. If the packet contains a connection ID that does not
  2335.    match that expected for the connection, the exterior router discards
  2336.    the packet.
  2337.  
  2338.    If a data sender receives an Open-Req from an exterior router with
  2339.    which it already has a connection and the connection ID does not
  2340.    match that for the connection already established, it should not
  2341.    discard the packet without verifying whether the connection is still
  2342.    active. The receipt of such a packet may indicate that the data
  2343.    receiver on the connection has been restarted and has opened a new
  2344.    one-way connection, without first terminating its original
  2345.    connection. The exterior router acting as the data sender should send
  2346.    a null RI-Upd over the connection to determine whether it is still
  2347.    active. If the data sender receives an RI-Ack in response to the null
  2348.    RI-Upd, it discards the Open-Req and the original connection remains
  2349.    active. If the data sender receives no RI-Ack after retransmitting
  2350.    the null RI-Upd, it closes the original connection, then sends an
  2351.  
  2352.  
  2353.  
  2354. Oppenheimer                                                    [Page 42]
  2355.  
  2356. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  2357.  
  2358.  
  2359.    Open-Rsp to the next Open-Req received.
  2360.  
  2361.    NOTE:  An exterior router can act as the data sender on only a single
  2362.    one-way connection between itself and a given exterior router.  That
  2363.    is, multiple one-way connections in the same direction cannot exist
  2364.    between two exterior routers.
  2365.  
  2366.    When establishing a one-way connection with a given data sender, a
  2367.    data receiver using AURP-Tr must send an Open-Req that has a
  2368.    different connection ID from that used in its last connection with
  2369.    the data sender. Otherwise, if the last connection to the data sender
  2370.    had terminated abnormally and the new connection used the same
  2371.    connection ID, the data sender might determine that the last
  2372.    connection was still active and interpret the Open-Req as a
  2373.    retransmission of the Open-Req for the last connection. The data
  2374.    sender might respond to the Open-Req by sending an Open-Rsp or ignore
  2375.    the Open-Req, but would not open a new connection.
  2376.  
  2377.    If a data receiver's implementation of AURP-Tr cannot guarantee the
  2378.    use of different connection IDs on successive connections with a
  2379.    given data sender, the data receiver must send an RI-Req immediately
  2380.    after it establishes a connection with a data sender. If the data
  2381.    sender already has a connection with the data receiver, it will send
  2382.    an RI-Rsp with a sequence number other than 1. The data receiver
  2383.    should then terminate that connection and open a new connection using
  2384.    a different connection ID.
  2385.  
  2386.    Using Retransmission Timers Under AURP-Tr
  2387.  
  2388.    When an AppleTalk tunnel exists through a foreign network's internet,
  2389.    the delay and loss characteristics of the tunnel's underlying foreign
  2390.    network system complicate the setting of retransmission timers. A
  2391.    physical connection can be built between two exterior routers using
  2392.    different media-for example, a single Ethernet LAN, a fast point-to-
  2393.    point link, an IP internet, or a slow link over an asynchronous
  2394.    modem.  It is important to minimize performance degradation due to
  2395.  
  2396.       packets being dropped or delayed by the underlying foreign network
  2397.       system
  2398.  
  2399.       the inefficient use of the underlying foreign network system's
  2400.       resources due to excessive retransmissions
  2401.  
  2402.    Most higher-level transport-layer services provide guaranteed packet
  2403.    delivery. It is not necessary to retransmit AURP packets when using
  2404.    such transport-layer services. When using AURP-Tr, an exterior router
  2405.    should employ an adaptive retransmission algorithm whenever possible.
  2406.    An adaptive retransmission strategy like that used in TCP
  2407.  
  2408.  
  2409.  
  2410. Oppenheimer                                                    [Page 43]
  2411.  
  2412. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  2413.  
  2414.  
  2415.       maintains the estimated times required to send a packet and receive
  2416.       an acknowledgment-that is, average round-trip times
  2417.  
  2418.       maintains standard deviations from the average round-trip times
  2419.  
  2420.       derives retransmission timers from the average round-trip times
  2421.       While AURP does not specify an adaptive retransmission algorithm,
  2422.       the use of such an algorithm is recommended.
  2423.  
  2424.    NOTE:  Often, long intervals exist between AURP packets sent
  2425.    successively on a connection by an exterior router-for example,
  2426.    between RI-Upd packets. Therefore, an adaptive retransmission
  2427.    algorithm used with AURP should give more weight to packets sent
  2428.    recently over a connection than would be appropriate for a general
  2429.    data-stream protocol like TCP.
  2430.  
  2431.    When an exterior router initially opens a connection, no transaction
  2432.    history is available. It is recommended that the retransmission
  2433.    algorithm use a truncated, exponential backoff scheme for the initial
  2434.    Open-Req sequence, because the exterior router with which the data
  2435.    receiver is establishing a connection may be inaccessible or down. An
  2436.    exterior router should not retransmit an Open-Req at a rate faster
  2437.    than once every two seconds.
  2438.  
  2439.    Hiding Local Networks From Remote Networks
  2440.  
  2441.    As described in the section "Hiding Local Networks From Tunnels" in
  2442.    Chapter 2, a network administrator can configure an exterior router
  2443.    to hide specific networks in its local internet from networks
  2444.    connected to other exterior routers on the tunnel. When exchanging
  2445.    routing information with other exterior routers on the tunnel, the
  2446.    exterior router exports no routing information for hidden networks in
  2447.    its local internet to exterior routers from which those networks are
  2448.    hidden.
  2449.  
  2450.    An exterior router using AURP does not include routing information
  2451.    for hidden networks in RI-Rsp, RI-Upd, or GZN-Rsp packets sent to
  2452.    exterior routers from which those networks are hidden. The exterior
  2453.    router also excludes from GDZL-Rsp packets any zones that appear only
  2454.    in the zone lists of hidden networks.
  2455.  
  2456.    To maintain network-level security, an exterior router should discard
  2457.    any AppleTalk data packet sent to a network in its local internet by
  2458.    an exterior router from which that network is hidden.
  2459.  
  2460.    NOTE:  An exterior router hides a network by excluding the routing
  2461.    information for that network from RI-Rsp, RI-Upd, GZN-Rsp, and GDZL-
  2462.    Rsp packets. However, network management packets-such as RTMP Route
  2463.  
  2464.  
  2465.  
  2466. Oppenheimer                                                    [Page 44]
  2467.  
  2468. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  2469.  
  2470.  
  2471.    Data Response (RDR) packets that are not split horizoned, and Simple
  2472.    Network Management Protocol (SNMP) packets-should include the routing
  2473.    information for hidden networks. For detailed information about the
  2474.    effects of AURP on network management, see the section "Network
  2475.    Management" in Chapter 4.
  2476.  
  2477.    AURP Packet Format
  2478.  
  2479.    An exterior router encapsulates both AURP packets and AppleTalk data
  2480.    packets using the same headers. Before forwarding AURP packets across
  2481.    a tunnel, an exterior router encapsulates the AURP packets in packets
  2482.    of the tunnel's underlying foreign network system-by adding the
  2483.    headers required by that network system. For more information about
  2484.    these headers, see the sections "Forwarding Data," "AppleTalk Data-
  2485.    Packet Format," and "AppleTalk Data-Packet Format for IP Tunneling"
  2486.    in Chapter 2.
  2487.  
  2488.    When using AURP-Tr in conjunction with TCP/IP, an exterior router
  2489.    encapsulates AURP packets in UDP packets prior to forwarding them
  2490.    across an IP tunnel through UDP port 387. When another exterior
  2491.    router on the tunnel receives the UDP packets at UDP port 387, it
  2492.    decapsulates the packets.
  2493.  
  2494.    Domain Headers in AURP Packets
  2495.  
  2496.    When forwarding AURP packets across a tunnel, an exterior router adds
  2497.    a domain header immediately preceding each packet. A domain header
  2498.    contains additional addressing information, including its source
  2499.    domain identifier and destination domain identifier (DI). The last
  2500.    two bytes of the domain header are set to 0003, indicating that the
  2501.    packet is an AURP packet rather than an AppleTalk packet. AURP data
  2502.    follows the domain header. Figure 3-20 shows the protocol headers,
  2503.    the domain header, and the routing data header that encapsulate a
  2504.    routing data packet sent across an IP tunnel.
  2505.  
  2506.           <<Figure 3-20  A routing data packet on an IP tunnel>>
  2507.  
  2508.    An exterior router interprets the domain identifiers in the domain
  2509.    header of an AURP packet differently from those in the domain headers
  2510.    of an AppleTalk data packet. Only network entities with AppleTalk
  2511.    addresses have domain identifiers associated with them. Exterior
  2512.    routers do not have AppleTalk addresses on the tunnel-thus, they do
  2513.    not have true domain identifiers.
  2514.  
  2515.    DESTINATION DOMAIN IDENTIFIER: The destination DI in an AURP packet's
  2516.    domain header is the DI that is associated with any network numbers
  2517.    corresponding to networks that reside in the receiving exterior
  2518.    router's domain. Only ZI-Req packets include such network numbers.
  2519.  
  2520.  
  2521.  
  2522. Oppenheimer                                                    [Page 45]
  2523.  
  2524. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  2525.  
  2526.  
  2527.    Whenever possible, a domain header should specify a destination DI-
  2528.    that is, the DI for the networks that reside in the domain of the
  2529.    exterior router that is to receive the packet. When an exterior
  2530.    router sends an Open-Req to open a connection, the destination DI is
  2531.    not yet known.  However, under the current version of AURP, the
  2532.    exterior router can either derive the destination DI from the
  2533.    destination's IP address or, on point-to-point links, include the
  2534.    null DI.
  2535.  
  2536.    SOURCE DOMAIN IDENTIFIER: The source DI in an AURP packet's domain
  2537.    header is the DI that is associated with any network numbers
  2538.    corresponding to networks that reside in the sending exterior
  2539.    router's domain. RI-Rsp, RI-Upd, ZI-Rsp, and GZN-Rsp packets include
  2540.    such network numbers. A domain header should always specify a source
  2541.    DI-that is, the DI for the networks that reside in the domain of the
  2542.    exterior router that is sending the packet.
  2543.  
  2544.    Routing Data Headers in AURP Packets
  2545.  
  2546.    The routing data header that immediately precedes the AURP data in a
  2547.    routing data packet consists of an AURP-Tr header and an AURP header.
  2548.    The AURP-Tr header consists of the following fields:
  2549.  
  2550.    Connection ID:  The contents of this two-byte field identify the
  2551.    specific one-way connection to which a packet belongs.
  2552.  
  2553.    Sequence number:  The contents of this two-byte field identify an
  2554.    individual packet on a connection.
  2555.  
  2556.    The AURP header consists of these fields:
  2557.  
  2558.    Command code:  This two-byte field identifies the command type. For
  2559.    information about command types, see the next section, "Command
  2560.    Types."
  2561.  
  2562.    Flags:  This two-byte field may contain different flags, depending on
  2563.    the command code. For information about flags, see the section
  2564.    "Routing Flags" later in this chapter.
  2565.  
  2566.    Command Types
  2567.  
  2568.    AURP defines the command types shown in Table 3-1:
  2569.  
  2570.  
  2571.  
  2572.  
  2573.  
  2574.  
  2575.  
  2576.  
  2577.  
  2578. Oppenheimer                                                    [Page 46]
  2579.  
  2580. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  2581.  
  2582.  
  2583.                          Table 3-1  Command types
  2584.  
  2585.                                                           Command
  2586.    Command type                           Abbreviation    code   Subcode
  2587.  
  2588.    Routing Information Request            RI-Req          1      -
  2589.    Routing Information Response           RI-Rsp          2      -
  2590.    Routing Information Acknowledgment     RI-Ack          3      -
  2591.    Routing Information Update             RI-Upd          4      -
  2592.    Router Dow                             RD              5      -
  2593.    Zone Information Request               ZI-Req          6      1
  2594.    Zone Information Response              ZI-Rsp          7      1 and 2
  2595.    Get Zones Net Request                  GZN-Req         6      3
  2596.    Get Zones Net Response                 GZN-Rsp         7      3
  2597.    Get Domain Zone List Request           GDZL-Req        6      4
  2598.    Get Domain Zone List Response          GDZL-Rsp        7      4
  2599.    Open Request                           Open-Req        8      -
  2600.    Open Response                          Open-Rsp        9      -
  2601.    Tickle                                 -               14     -
  2602.    Tickle Acknowledgment                  Tickle-Ack      15     -
  2603.  
  2604.    Routing Flags
  2605.  
  2606.    AURP defines the flags shown in Table 3-2. All other flags are
  2607.    reserved.  A data sender should set reserved flags to 0. A data
  2608.    receiver should ignore reserved flags.
  2609.  
  2610.                              Table 3-2  Flags
  2611.  
  2612.    Flag                                Event      Command types       Bit
  2613.  
  2614.    Send update information (SUI) flag  NA         Open-Req and RI-Req 14
  2615.    Send update information (SUI) flag  ND and NRC Open-Req and RI-Req 13
  2616.    Send update information (SUI) flag  NDC        Open-Req and RI-Req 12
  2617.    Send update information (SUI) flag  ZC         Open-Req and RI-Req 11
  2618.    Last flag                           -          RI-Rsp and GDZL-Rsp 15
  2619.    Remapping active flag               -          Open-Rsp            14
  2620.    Hop-count reduction active flag     -          Open-Rsp            13
  2621.    Reserved environment flags          -          -                   12
  2622.                                                                   and 11
  2623.    Send zone information (SZI) flag    -          RI-Ack              14
  2624.  
  2625.    Figure 3-21 shows the routing flags in Open-Req and RI-Req packets.
  2626.  
  2627.        <<Figure 3-21  Routing flags in Open-Req and RI-Req packets>>
  2628.  
  2629.    Figure 3-22 shows the routing flags in all packets other than Open-
  2630.    Req and RI-Req packets.
  2631.  
  2632.  
  2633.  
  2634. Oppenheimer                                                    [Page 47]
  2635.  
  2636. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  2637.  
  2638.  
  2639.               <<Figure 3-22  Routing flags in other packets>>
  2640.  
  2641.    Open Request Packet
  2642.  
  2643.    An Open-Req packet initiates the establishment of a one-way
  2644.    connection with a data sender. Figure 3-23 shows the format of an
  2645.    Open-Req packet.  When sending an Open-Req packet, an exterior router
  2646.    inserts the next available connection ID in the packet's AURP-Tr
  2647.    header and sets its sequence number to 0. The AURP header of an
  2648.    Open-Req contains the command code 8. Its flag bytes contain send
  2649.    update information (SUI) flags. For the current version of AURP, the
  2650.    version number is 1.
  2651.  
  2652.    An Open-Req packet's option data field contains
  2653.  
  2654.       an option count-indicating the number of option tuples to follow
  2655.  
  2656.       the option tuples
  2657.  
  2658.    When the data sender receives an Open-Req, it can discard the option
  2659.    tuples for any options it does not implement. For information about
  2660.    option tuples, see the section "Option Tuples" later in this chapter.
  2661.  
  2662.                   <<Figure 3-23  Open-Req packet format>>
  2663.  
  2664.    Open Response Packet
  2665.  
  2666.    When the data sender receives an Open-Req, it responds by sending an
  2667.    Open-Rsp packet to establish a one-way connection with the data
  2668.    receiver. Figure 3-24 shows the format of an Open-Rsp packet. In its
  2669.    AURP-Tr header, an Open-Rsp packet contains the connection ID from
  2670.    the associated Open-Req packet and the sequence number 0. The AURP
  2671.    header of an Open-Rsp contains the command code 9 and its flag bytes
  2672.    contain environment flags that provide information about the data
  2673.    sender's environment-such as whether network-number remapping or
  2674.    hop-count reduction is active. For information about network-number
  2675.    remapping and hop-count reduction, see the sections "Network-Number
  2676.    Remapping" and "Hop-Count Reduction," respectively, in Chapter 4.
  2677.  
  2678.                   <<Figure 3-24  Open-Rsp packet format>>
  2679.  
  2680.    An Open-Rsp packet's option data field contains
  2681.  
  2682.       a two-byte field that indicates either
  2683.          the nominal rate at which the data sender sends updates-in
  2684.          multiples of ten seconds
  2685.          an error code-which is a negative number-if the data sender
  2686.          cannot accept the connection
  2687.  
  2688.  
  2689.  
  2690. Oppenheimer                                                    [Page 48]
  2691.  
  2692. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  2693.  
  2694.  
  2695.  
  2696.       an option count-indicating the number of option tuples to follow
  2697.  
  2698.       the option tuples
  2699.  
  2700.    For information about error codes, see the section "Error Codes"
  2701.    later in this chapter. For information about option tuples, see the
  2702.    next section, "Option Tuples."
  2703.  
  2704.    Option Tuples
  2705.  
  2706.    Both Open-Req and Open-Rsp packets contain option tuples. An option
  2707.    tuple contains a one-byte length field that indicates the length of
  2708.    the remainder of the tuple, a one-byte type code, and an optional
  2709.    data field, as shown in Figure 3-25.
  2710.  
  2711.                       <<Figure 3-25  Option tuples>>
  2712.  
  2713.    AURP currently defines the option-type codes shown in Table 3-3:
  2714.  
  2715.                        Table 3-3  Option-type codes
  2716.  
  2717.    Option types                Type codes
  2718.  
  2719.    Authentication              1
  2720.    Reserved for future use     2-255
  2721.  
  2722.    Routing Information Request Packet
  2723.  
  2724.    An RI-Req packet requests the data sender to send RI-Rsp packets.
  2725.    Figure 3-26 shows the format for an RI-Req packet. When sending an
  2726.    RI-Req packet, an exterior router inserts the connection ID for the
  2727.    connection on which it is the data receiver in the packet's AURP-Tr
  2728.    header and sets the packet's sequence number to 0. The AURP header of
  2729.    an RI-Req contains the command code 1 and its flag bytes contain the
  2730.    send update information (SUI) flags.
  2731.  
  2732.                    <<Figure 3-26  RI-Req packet format>>
  2733.  
  2734.    Routing Information Response Packet
  2735.  
  2736.    When the data sender receives an RI-Req, it responds by sending a
  2737.    sequence of RI-Rsp packets. Figure 3-27 shows the format of an RI-Rsp
  2738.    packet. When sending an RI-Rsp packet, a data sender inserts the
  2739.    connection ID from the associated RI-Req in the RI-Rsp packet's
  2740.    AURP-Tr header and sets its sequence number to the next number in the
  2741.    sequence.  The AURP header of an RI-Rsp packet contains the command
  2742.    code 2. In the last packet in a sequence of RI-Rsp packets, the
  2743.  
  2744.  
  2745.  
  2746. Oppenheimer                                                    [Page 49]
  2747.  
  2748. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  2749.  
  2750.  
  2751.    last-flag bit is set to 1.
  2752.  
  2753.                    <<Figure 3-27  RI-Rsp packet format>>
  2754.  
  2755.    An RI-Rsp packet's routing data field contains zero or more routing
  2756.    tuples, which have a format similar to those in RTMP packets. An AURP
  2757.    tuple for a nonextended network is different from an RTMP tuple for
  2758.    an extended network in one respect-the range flag, or the sixth byte,
  2759.    in an AURP tuple for a nonextended network is set to 0. Figure 3-28
  2760.    shows nonextended and extended network tuples in an RI-Rsp packet.
  2761.  
  2762.          <<Figure 3-28  Nonextended and extended network tuples>>
  2763.  
  2764.    Routing Information Acknowledgment Packet
  2765.  
  2766.    When a data receiver receives an RI-Rsp, RI-Upd, or RD packet, it
  2767.    responds by sending an RI-Ack packet. Figure 3-29 shows the format of
  2768.    an RI-Ack packet. When sending an RI-Ack packet, a data receiver
  2769.    inserts the connection ID and sequence number from the associated
  2770.    RI-Rsp, RI-Upd, or RD packet in the RI-Ack packet's AURP-Tr header.
  2771.    The AURP header of an RI-Ack contains the command code 3. If the data
  2772.    receiver sends an RI-Ack using AURP-Tr, in response to an RI-Rsp or
  2773.    RI-Upd packet that contains an NA event, its flag bytes contain the
  2774.    send zone information flag. An RI-Ack packet contains no data.
  2775.  
  2776.                    <<Figure 3-29  RI-Ack packet format>>
  2777.  
  2778.    Routing Information Update Packet
  2779.  
  2780.    The occurrence of specified events requires the data sender to send
  2781.    an RI-Upd packet. Figure 3-30 shows the format of an RI-Upd packet.
  2782.    When sending an RI-Upd packet, a data sender inserts the connection
  2783.    ID for the current connection in the RI-Upd packet's AURP-Tr header
  2784.    and sets its sequence number to the next number in the sequence. The
  2785.    AURP header of an RI-Upd contains the command code 4 and its flag
  2786.    bytes are set to 0.
  2787.  
  2788.                    <<Figure 3-30  RI-Upd packet format>>
  2789.  
  2790.    An RI-Upd packet's data field contains one or more event tuples. An
  2791.    event tuple for a nonextended network consists of a one-byte event
  2792.    code, the network number, and the distance to that network. An event
  2793.    tuple for an extended network consists of a one-byte event code, the
  2794.    first network number in the range of network numbers, the distance to
  2795.    the network, and the last network number in the range of network
  2796.    numbers. Figure 3-31 shows nonextended and extended network tuples in
  2797.    an RI-Upd packet.
  2798.  
  2799.  
  2800.  
  2801.  
  2802. Oppenheimer                                                    [Page 50]
  2803.  
  2804. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  2805.  
  2806.  
  2807.       <<Figure 3-31  Nonextended and extended network event tuples>>
  2808.  
  2809.    AURP currently defines the event codes shown in Table 3-4:
  2810.  
  2811.                           Table 3-4  Event codes
  2812.  
  2813.    Event                             Abbreviation     Event code
  2814.  
  2815.    Null event                                         0
  2816.    Network Added event               NA               1
  2817.    Network Deleted event             ND               2
  2818.    Network Route Change event        NRC              3
  2819.    Network Distance Change event     NDC              4
  2820.    Zone Change event                 ZC               5
  2821.  
  2822.    A null event tuple contains no event data. The format of NA, ND, NRC,
  2823.    and NDC event tuples differs, depending on whether the event pertains
  2824.    to a nonextended or an extended network. The distance field does not
  2825.    apply to ND or NRC event tuples and should be set to 0. The ZC event
  2826.    tuple is not yet defined.
  2827.  
  2828.    An RI-Upd packet should never contain two events that pertain to the
  2829.    same network. However, to ensure consistent behavior in the event
  2830.    that an exterior router receives a packet containing multiple events
  2831.    for one network, an exterior router should always process events in
  2832.    the order in which they occur in the RI-Upd packet. Thus, if an
  2833.    exterior router were to receive an RI-Upd that contained an NA event,
  2834.    then an ND event for the same network, the exterior router would
  2835.    delete the network from its routing table.
  2836.  
  2837.    Router Down Packet
  2838.  
  2839.    An exterior router should send an RD packet before it goes down.
  2840.    Figure 3-32 shows the format of an RD packet. When sending an RD
  2841.    packet, an exterior router inserts the connection ID for the current
  2842.    connection in the RD packet's AURP-Tr header. If the data sender
  2843.    sends an RD packet, it sets its sequence number to the next number in
  2844.    the sequence. If the data receiver sends an RD packet, it sets its
  2845.    sequence number to 0. The AURP header of an RD packet contains the
  2846.    command code 5 and its flag bytes are set to 0.
  2847.  
  2848.                      <<Figure 3-32  RD packet format>>
  2849.  
  2850.    An RD packet's data field contains a two-byte error code that
  2851.    indicates the exterior router's reason for going down. For
  2852.    information about the error codes, see the section "Error Codes"
  2853.    later in this chapter.
  2854.  
  2855.  
  2856.  
  2857.  
  2858. Oppenheimer                                                    [Page 51]
  2859.  
  2860. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  2861.  
  2862.  
  2863.    Zone Information Request/Response Transactions
  2864.  
  2865.    An exterior router returns information about its zones through
  2866.    request/response transactions. Three types of zone requests-ZI-Req,
  2867.    GDZL-Req, and GZN-Req-share the same command code and have subcodes
  2868.    that indicate the actual request type. Three types of zone
  2869.    responses-ZI-Rsp, GDZL-Rsp, and GZN-Rsp-share another command code
  2870.    and have subcodes that indicate the actual response type.
  2871.  
  2872.    ZONE INFORMATION REQUEST PACKET: A ZI-Req packet causes the data
  2873.    sender to send ZI-Rsp packets. Figure 3-33 shows the format of a ZI-
  2874.    Req packet.  When sending a ZI-Req packet, an exterior router inserts
  2875.    the connection ID for the connection on which it is the data receiver
  2876.    in the packet's AURP-Tr header and sets the packet's sequence number
  2877.    to 0. The AURP header of a ZI-Req contains the command code 6 and its
  2878.    flag bytes are set to 0.
  2879.  
  2880.                    <<Figure 3-33  ZI-Req packet format>>
  2881.  
  2882.    A ZI-Req packet's data field contains the subcode 1 and a two-byte
  2883.    network number for each network about which the exterior router is
  2884.    requesting zone information. The network number for an extended
  2885.    network is the first network number in its range of network numbers.
  2886.  
  2887.    ZONE INFORMATION RESPONSE PACKET: There are two types of ZI-Rsp
  2888.    packets-nonextended ZI-Rsp packets and extended ZI-Rsp packets. The
  2889.    format of a nonextended ZI-Rsp packet is similar to that of a
  2890.    nonextended AppleTalk ZIP Reply packet. When the data sender receives
  2891.    a ZI-Req and the zone list for the network or networks for which that
  2892.    ZI-Req requested zone information fits in one ZI-Rsp packet, it sends
  2893.    a nonextended ZI-Rsp.
  2894.  
  2895.    An extended ZI-Rsp packet is similar to an extended AppleTalk ZIP
  2896.    Reply packet. When the data sender receives a ZI-Req and the zone
  2897.    list for a network about which that ZI-Req requested zone information
  2898.    does not fit in a single ZI-Rsp packet, it sends a sequence of
  2899.    extended ZI-Rsp packets.
  2900.  
  2901.    Figure 3-34 shows the format of a ZI-Rsp packet. When sending a ZI-
  2902.    Rsp packet, a data sender inserts the connection ID from the
  2903.    associated ZI-Req packet in the packet's AURP-Tr header and sets the
  2904.    packet's sequence number to 0. A ZI-Rsp packet's AURP header contains
  2905.    the command code 7 and its flag bytes are set to 0. The subcode 1
  2906.    indicates a nonextended ZI-Rsp packet, while the subcode 2 indicates
  2907.    an extended ZI-Rsp packet.
  2908.  
  2909.                    <<Figure 3-34  ZI-Rsp packet format>>
  2910.  
  2911.  
  2912.  
  2913.  
  2914. Oppenheimer                                                    [Page 52]
  2915.  
  2916. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  2917.  
  2918.  
  2919.    A ZI-Rsp packet's data field contains the requested zone information.
  2920.    Its format is similar to that of a ZIP Reply packet.
  2921.  
  2922.    In a nonextended ZI-Rsp packet, the first two bytes of the data field
  2923.    should indicate the number of tuples contained in the packet, while
  2924.    the remaining bytes constitute network number/zone name tuples.
  2925.    Within the packet, all of the tuples for a given network must be
  2926.    contiguous.  NOTE:  When sending a nonextended ZI-Rsp packet, an
  2927.    exterior router should attempt to specify the correct number of zone
  2928.    tuples. However, an exterior router receiving a nonextended ZI-Rsp
  2929.    packet should process all tuples contained in the packet, regardless
  2930.    of the number indicated in the header.
  2931.  
  2932.    Network number/zone name tuples in a nonextended ZI-Rsp packet can
  2933.    use either the long tuple format or the optimized tuple format. A
  2934.    long network number/zone name tuple contains a network number,
  2935.    followed by the length of the zone name, and the zone name.
  2936.  
  2937.    Using the optimized tuple format, an exterior router can compress a
  2938.    nonextended ZI-Rsp packet in which more than one network contains the
  2939.    same zone name in its zone list. If the high-order bit of the length
  2940.    byte for a given zone name is set to 1, the following 15 bits
  2941.    represent an offset from the length byte of the first zone name in
  2942.    the packet's data field to the actual location of the zone name
  2943.    length and the zone name. Whenever possible, it is recommended that
  2944.    an exterior router send optimized ZI-Rsp packets. All exterior
  2945.    routers must be able to receive optimized ZI-Rsp packets.
  2946.  
  2947.    In an extended ZI-Rsp packet, the first two bytes of the data field
  2948.    indicate the total number of tuples in the zone list for the network
  2949.    or networks for which the corresponding ZI-Req requested zone
  2950.    information.  The remaining bytes in the data field of an extended
  2951.    ZI-Rsp packet consist of network number/zone name tuples. All tuples
  2952.    in a single extended ZI-Rsp packet must contain the same network
  2953.    number. However, for consistency with the format of network
  2954.    number/zone name tuples in nonextended ZI-Rsp packets, the network
  2955.    number precedes each zone name in an extended ZI-Rsp packet.
  2956.    Duplicate zone names never exist in extended ZI-Rsp packets-
  2957.    therefore, extended ZI-Rsp packets use the long tuple format, rather
  2958.    than the optimized tuple format.
  2959.  
  2960.    Figure 3-35 shows the long tuple and optimized tuple formats for a
  2961.    ZI-Rsp packet.
  2962.  
  2963.              <<Figure 3-35  Long and optimized tuple formats>>
  2964.  
  2965.    GET DOMAIN ZONE LIST REQUEST PACKET: A Get Domain Zone List Request
  2966.    packet, or GDZL-Req, requests the data sender to send GDZL-Rsp
  2967.  
  2968.  
  2969.  
  2970. Oppenheimer                                                    [Page 53]
  2971.  
  2972. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  2973.  
  2974.  
  2975.    packets.  Figure 3-36 shows the format for a GDZL-Req packet. When
  2976.    sending a GDZL-Req packet, an exterior router inserts the connection
  2977.    ID for the connection on which it is the data receiver in the
  2978.    packet's AURP-Tr header and sets its sequence number to 0. The AURP
  2979.    header of a GDZL-Req contains the command code 6 and its flag bytes
  2980.    are set to 0.
  2981.  
  2982.                   <<Figure 3-36  GDZL-Req packet format>>
  2983.  
  2984.    A GDZL-Req packet's data field contains the subcode 4 and the start
  2985.    index in the data sender's zone list at which to begin returning
  2986.    GDZL-Rsp packets.
  2987.  
  2988.    GET DOMAIN ZONE LIST RESPONSE PACKET: When the data sender receives a
  2989.    GDZL-Req, it responds by sending a GDZL-Rsp packet. Figure 3-37 shows
  2990.    the format of a GDZL-Rsp packet. When sending a GDZL-Rsp packet, a
  2991.    data sender inserts the connection ID from the associated GDZL-Req
  2992.    packet in the packet's AURP-Tr header and sets its sequence number to
  2993.    0. The AURP header of a GDZL-Rsp contains the command code 7 and its
  2994.    flag bytes are set to 0, except in the last packet containing zone
  2995.    information, which has its last flag set to 1.
  2996.  
  2997.                   <<Figure 3-37  GDZL-Rsp packet format>>
  2998.  
  2999.    A GDZL-Rsp packet's data field contains the subcode 4, the start
  3000.    index from the associated GDZL-Req, and the zone list. If the data
  3001.    sender does not support the GDZL-Req, it should set the start index
  3002.    to -1.
  3003.  
  3004.    GET ZONES NET REQUEST PACKET: A Get Zones Net Request packet, or
  3005.    GZN-Req, requests the data sender to send zone information for one
  3006.    specific zone. Figure 3-38 shows the format of a GZN-Req packet. When
  3007.    sending a GZN-Req packet, an exterior router inserts the connection
  3008.    ID for the connection on which it is the data receiver in the
  3009.    packet's AURP-Tr header and sets its sequence number to 0. The AURP
  3010.    header of a GZN-Req contains the command code 6 and its flag bytes
  3011.    are set to 0.
  3012.  
  3013.                   <<Figure 3-38  GZN-Req packet format>>
  3014.  
  3015.    A GZN-Req packet's data field contains the subcode 3 and the name of
  3016.    the zone about which the GZN-Req is requesting zone information.
  3017.  
  3018.    GET ZONES NET RESPONSE PACKET: When the data sender receives a GZN-
  3019.    Req, it responds by sending a GZN-Rsp packet, containing the
  3020.    requested zone information. Figure 3-39 shows the format of a GZN-Rsp
  3021.    packet. When sending a GZN-Rsp packet, a data sender inserts the
  3022.    connection ID from the associated GZN-Req packet in the GZN-Rsp
  3023.  
  3024.  
  3025.  
  3026. Oppenheimer                                                    [Page 54]
  3027.  
  3028. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  3029.  
  3030.  
  3031.    packet's AURP-Tr header and sets the GZN-Rsp packet's sequence number
  3032.    to 0. The AURP header of a GZN-Rsp contains the command code 7 and
  3033.    its flag bytes are set to 0.
  3034.  
  3035.                   <<Figure 3-39  GZN-Rsp packet format>>
  3036.  
  3037.    A GZN-Rsp packet's data field contains the subcode 3, the zone name
  3038.    from the associated GZN-Req, the total number of network tuples for
  3039.    that zone, and as many network tuples as can fit in the packet. These
  3040.    tuples have the same format as those in RI-Rsp packets. If the data
  3041.    sender has no information about the zone, it returns a GZN-Rsp in
  3042.    which the number of network tuples is 0. If the data sender does not
  3043.    support the GZN-Req, it should set the number of network tuples to
  3044.    -1.
  3045.  
  3046.    TICKLE PACKET: The data receiver sends a Tickle packet to verify that
  3047.    the data received from the data sender is still valid. Figure 3-40
  3048.    shows the format of a Tickle packet. When sending a Tickle packet, an
  3049.    exterior router inserts the connection ID for the connection on which
  3050.    it is the data receiver in the packet's AURP-Tr header and sets its
  3051.    sequence number to 0. The AURP header of a Tickle contains the
  3052.    command code 14 and its flag bytes are set to 0. A Tickle packet
  3053.    contains no data.
  3054.  
  3055.                    <<Figure 3-40  Tickle packet format>>
  3056.  
  3057.    TICKLE ACKNOWLEDGMENT PACKET: When the data sender receives a Tickle,
  3058.    it responds by sending a Tickle-Ack packet. Figure 3-41 shows the
  3059.    format of a Tickle-Ack. When sending a Tickle-Ack, a data sender
  3060.    inserts the connection ID from the associated Tickle in the Tickle-
  3061.    Ack packet's AURP-Tr header and sets its sequence number to 0. The
  3062.    AURP header of a Tickle-Ack packet contains the command code 15 and
  3063.    its flag bytes are set to 0. A Tickle-Ack packet contains no data.
  3064.  
  3065.                  <<Figure 3-41  Tickle-Ack packet format>>
  3066.  
  3067.    Error Codes
  3068.  
  3069.    Open-Rsp and RD packets contain error codes. AURP currently defines
  3070.    the error codes listed in Table 3-5.
  3071.  
  3072.                           Table 3-5  Error codes
  3073.  
  3074.    Error code     Error
  3075.  
  3076.    -1             Normal connection close
  3077.    -2             Routing loop detected
  3078.    -3             Connection out of sync
  3079.  
  3080.  
  3081.  
  3082. Oppenheimer                                                    [Page 55]
  3083.  
  3084. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  3085.  
  3086.  
  3087.    -4             Option-negotiation error
  3088.    -5             Invalid version number
  3089.    -6             Insufficient resources for connection
  3090.    -7             Authentication error
  3091.  
  3092. 4.  REPRESENTING WIDE AREA NETWORK INFORMATION
  3093.  
  3094.    This chapter describes optional features of AURP-some of which can
  3095.    also be implemented on routers that use RTMP rather than AURP for
  3096.    routing-information propagation. It provides detailed information
  3097.    about the presentation of wide area network information by exterior
  3098.    routers to nodes on their local internets or to other exterior
  3099.    routers, including:
  3100.  
  3101.       basic security-both network hiding and device hiding
  3102.  
  3103.       remapping of remote network numbers
  3104.  
  3105.       internet clustering
  3106.  
  3107.       loop detection
  3108.  
  3109.       hop-count reduction
  3110.  
  3111.       hop-count weighting
  3112.  
  3113.       backup paths
  3114.  
  3115.       network management
  3116.  
  3117.    Network Hiding
  3118.  
  3119.    An exterior router can hide networks by importing or exporting
  3120.    routing information only about specific networks.
  3121.  
  3122.    Importing Routing Information About Specific Networks
  3123.  
  3124.    A network administrator can configure a tunneling port on an exterior
  3125.    router to import only a subset of the routing information that it
  3126.    receives through the tunnel. To do so, the administrator hides
  3127.    specific networks connected to other exterior routers on the tunnel
  3128.    from the exterior router's local internet. For example, an exterior
  3129.    router can import only that routing information received from
  3130.    specific exterior routers, or routing information for networks in a
  3131.    specific network range or zone. By importing routing information only
  3132.    about specific networks, an exterior router can greatly reduce
  3133.  
  3134.  
  3135.  
  3136.  
  3137.  
  3138. Oppenheimer                                                    [Page 56]
  3139.  
  3140. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  3141.  
  3142.  
  3143.       the amount of routing information maintained by routers on its
  3144.       local internet
  3145.  
  3146.       the number of zones and devices that are visible to devices on its
  3147.       local internet
  3148.  
  3149.    Exporting Routing Information About Specific Networks
  3150.  
  3151.    A network administrator can configure a tunneling port on an exterior
  3152.    router to export only a subset of its local internet's routing
  3153.    information-by hiding from other exterior routers on the tunnel
  3154.    specific networks in its local internet. For more information about
  3155.    hiding networks from other exterior routers, see the section "Hiding
  3156.    Local Networks From Tunnels" in Chapter 2.
  3157.  
  3158.    Device Hiding
  3159.  
  3160.    A router can prevent a device in its local internet from being
  3161.    visible to other nodes on a specific part or all other parts of the
  3162.    internet by not forwarding Name Binding Protocol (NBP) LkUp-Reply
  3163.    packets from that device. Hiding a device prevents nodes on the part
  3164.    of the internet from which it is hidden from knowing the name of the
  3165.    hidden device, making it more difficult for those nodes to access the
  3166.    hidden device. Any AppleTalk Phase 2 router can hide devices.
  3167.  
  3168.    Advantages and Disadvantages
  3169.  
  3170.    Device hiding is a flexible security mechanism that is appropriate
  3171.    for organizations that do not require true device-specific security.
  3172.    It is not a substitute for device-specific security. Device hiding
  3173.    can provide a degree of security on devices for which no other form
  3174.    of security exists-such as LaserWriter printers.
  3175.  
  3176.    A user can write a program that can obtain access to a hidden device
  3177.    using its AppleTalk address. Device hiding cannot secure a device
  3178.    from a user that is not using NBP to access the device.
  3179.  
  3180.    Device hiding does not provide true device-specific security. Many
  3181.    devices require device-specific security-for example, AppleShare file
  3182.    servers. Device-specific security can provide various levels of
  3183.    security, and may allow a network administrator to grant access
  3184.    privileges based on registered users and groups.
  3185.  
  3186.    Configuring Device Hiding on a Port
  3187.  
  3188.    When configuring a port on a router that implements device hiding, a
  3189.    network administrator should be able to hide any device that is
  3190.    accessible through that port from the other ports on the router. The
  3191.  
  3192.  
  3193.  
  3194. Oppenheimer                                                    [Page 57]
  3195.  
  3196. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  3197.  
  3198.  
  3199.    device being hidden need not reside on the network connected directly
  3200.    to the port being configured.
  3201.  
  3202.    An administrator should be able to specify the ports from which to
  3203.    hide a device-either specific ports or all other ports.
  3204.  
  3205.    When hiding devices, an administrator should be able to specify that
  3206.    a list of devices either be hidden or visible. The device list should
  3207.    include device names and device types-for example, We-B-
  3208.    Nets:AFPServer.  An administrator should also be able to hide all
  3209.    devices of a given type-for example, all LaserWriter printers-or all
  3210.    devices of all types.
  3211.  
  3212.    Filtering NBP LkUp-Reply Packets
  3213.  
  3214.    To implement device hiding, a router selectively filters NBP LkUp-
  3215.    Reply packets. When a port's configuration specifies that devices
  3216.    accessible through the port be hidden, the router
  3217.  
  3218.       monitors all NBP LkUp-Reply packets received through that port-
  3219.       called the incoming port
  3220.  
  3221.       determines the port through which it is to forward such a packet-
  3222.       called the outgoing port
  3223.  
  3224.       obtains-from the port configuration for the incoming port-the list
  3225.       of devices to be hidden from the outgoing port
  3226.  
  3227.       determines whether it should filter all or part of an NBP LkUp-
  3228.       Reply packet
  3229.  
  3230.          If a port's configuration does not specify that devices be
  3231.          hidden from the outgoing port, the router forwards the packet.
  3232.  
  3233.          If a port's configuration specifies that devices be hidden from
  3234.          the outgoing port, the router checks each tuple in the NBP LkUp-
  3235.          Reply packet to determine whether it is from a device in the
  3236.          port's list of hidden devices. It marks tuples from hidden
  3237.          devices for deletion. Once the router scans the entire packet,
  3238.          it forwards the packet if no tuples were marked for deletion; it
  3239.          discards the packet if all tuples were marked for deletion; or,
  3240.          if only some tuples were marked for deletion, it rebuilds the
  3241.          packet without the tuples marked for deletion, then forwards the
  3242.          packet.
  3243.  
  3244.    When the router rebuilds a packet, it adjusts the tuple count in the
  3245.    packet's NBP header to reflect the number of tuples remaining. If a
  3246.    rebuilt packet's DDP header contains a nonzero checksum, the router
  3247.  
  3248.  
  3249.  
  3250. Oppenheimer                                                    [Page 58]
  3251.  
  3252. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  3253.  
  3254.  
  3255.    verifies the original checksum, then sets it to 0.
  3256.  
  3257.    This device-hiding scheme can handle both NBP Lookups and NBP
  3258.    Confirms, because a node responds to requests of either type with a
  3259.    LkUp-Reply packet.
  3260.  
  3261.    LkUp-Reply packets do not contain the names of zones in which devices
  3262.    reside. Thus, if two devices having the same name and type are
  3263.    accessible through a port, a network administrator can hide both
  3264.    devices or neither device, but not just one of the devices.
  3265.  
  3266.    When configuring ports on routers through which redundant paths to a
  3267.    device exist, a network administrator must hide that device on at
  3268.    least one port on each path to that device. Otherwise, only a router
  3269.    on which such a port was configured to hide the device would filter
  3270.    LkUp-Reply packets from the device. A router on which such a port was
  3271.    not configured to hide the device would not filter its LkUp-Reply
  3272.    packets.  Figure 4-1 shows the proper configuration of device hiding
  3273.    when a loop exists on the internet.
  3274.  
  3275.      <<Figure 4-1  Device hiding when a loop exists on the internet>>
  3276.  
  3277.    Resolving Network-Numbering Conflicts
  3278.  
  3279.    In addition to interconnecting different parts of one organization's
  3280.    internet, tunnels can interconnect the internets of multiple
  3281.    organizations. Each organization administrates its internet
  3282.    independently. Therefore, conflicting network numbers may exist on
  3283.    the internets, especially when many internets are interconnected. The
  3284.    following sections describe the methods that AURP uses to resolve
  3285.    various problems due to conflicting network numbers.
  3286.  
  3287.    Network-Number Remapping
  3288.  
  3289.    Network-number remapping resolves network-numbering conflicts,
  3290.    allowing network administrators to build very large internets. When
  3291.    configuring a port on an exterior router, an administrator can
  3292.    specify a range of AppleTalk network numbers to be used for imported
  3293.    networks-that is, networks that are accessible through half-routing
  3294.    or tunneling ports, for which the exterior router imports routing
  3295.    information from other exterior routers. The remapping range-the
  3296.    range of network numbers reserved for network-number remapping-must
  3297.    not conflict with any network numbers already in use on the exterior
  3298.    router's local internet.
  3299.  
  3300.    The exterior router maps the network numbers in incoming packets into
  3301.    the remapping range. It converts remapped network numbers back to
  3302.    their actual network numbers for outgoing packets. To nodes and
  3303.  
  3304.  
  3305.  
  3306. Oppenheimer                                                    [Page 59]
  3307.  
  3308. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  3309.  
  3310.  
  3311.    routers within the exterior router's local internet, packets
  3312.    containing remapped network numbers apparently originate from or are
  3313.    being sent to networks having numbers in the remapping range.
  3314.  
  3315.    UNIQUE IDENTIFIERS: In a tunneling environment, many different
  3316.    internets may include AppleTalk networks that have the same network
  3317.    numbers.  Therefore, each exterior router on an internet must
  3318.    associate a unique identifier (UI) with each network that it exports
  3319.    across the tunnel-that is, each network in its local internet that is
  3320.    not hidden. Generally, some type of global administration of UIs is
  3321.    necessary.
  3322.  
  3323.    On a given tunnel, each exterior router on which network-number
  3324.    remapping is active must have a unique domain identifier (DI). An
  3325.    exterior router using AURP derives a network's UI by concatenating
  3326.    the exterior router's DI-which is unique on the tunnel-with the
  3327.    packet's network number or range-which is unique within the exterior
  3328.    router's domain. For more information about domain identifiers, see
  3329.    the section "Domain Identifiers" in Chapter 2.
  3330.  
  3331.    On a tunneling port, an exterior router refers to AppleTalk network
  3332.    numbers and network ranges using UIs. Whenever an exterior router
  3333.    sends or receives AppleTalk data packets across the tunnel, it refers
  3334.    to any network numbers or ranges in the packets-for example, in a
  3335.    packet's DDP header-by their UIs. For example, when an exterior
  3336.    router sends an RI- Rsp, which provides a list of network ranges for
  3337.    its local internet to other exterior routers on the tunnel, it lists
  3338.    the UIs corresponding to those network ranges. When an exterior
  3339.    router receives RI-Rsp packets from other exterior routers on the
  3340.    tunnel, it interprets the data in each packet as a list of UIs.
  3341.  
  3342.    Network-number remapping should be an optional component of any
  3343.    tunneling scheme. An administrator should be able to configure a
  3344.    tunneling port with or without specifying network-number remapping.
  3345.    When network-number remapping is inactive on all of the exterior
  3346.    routers on a tunnel, each AppleTalk network number and range
  3347.    associated with the exterior routers must be unique.
  3348.  
  3349.    MAPPINGS: An exterior router uses the following process to map
  3350.    AppleTalk network numbers and ranges to UIs, and vice versa:
  3351.  
  3352.       The exterior router logically maps network numbers in the exterior
  3353.       router's local internet to the corresponding UIs before sending a
  3354.       packet out the tunneling port, as shown in Figure 4-2. The UI
  3355.       consists of the source DI in the domain header and the network
  3356.       number from the packet. Therefore, the exterior router changes no
  3357.       data in the packet to perform this mapping.
  3358.  
  3359.  
  3360.  
  3361.  
  3362. Oppenheimer                                                    [Page 60]
  3363.  
  3364. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  3365.  
  3366.  
  3367.       The exterior router logically maps UIs corresponding to local
  3368.       networks in packets received through the tunneling port back to
  3369.       their local network numbers before forwarding the packets to the
  3370.       exterior router's local internet, as shown in Figure 4-2. The
  3371.       exterior router changes no data in the packet. This mapping is the
  3372.       inverse of the previous mapping.
  3373.  
  3374.       The exterior router maps UIs corresponding to network numbers for
  3375.       remote networks-that is, networks connected to other exterior
  3376.       routers on the tunnel-that are in packets received through the
  3377.       tunneling port to network numbers in the remapping range configured
  3378.       for the local internet, as shown in Figure 4-2. An exterior router
  3379.       remaps network numbers from the following fields in this way:
  3380.  
  3381.          the source network number field in the DDP header of an
  3382.          AppleTalk data packet
  3383.  
  3384.          the NBP entity address field in an AppleTalk data packet
  3385.  
  3386.          the routing data field in an AURP routing-information packet
  3387.  
  3388.       The exterior router maps network numbers in the remapping range
  3389.       configured for the local internet back to the corresponding UIs
  3390.       before sending packets out the tunneling port, as shown in Figure
  3391.       4-2. This type of remapping applies only to network numbers that
  3392.       reside in a destination network-number field of a DDP header in an
  3393.       AppleTalk data packet. This mapping is the inverse of the previous
  3394.       mapping.
  3395.  
  3396.      <<Figure 4-2 Mappings between local and remote internets' network
  3397.                              numbers and UIs>>
  3398.  
  3399.    NOTE:  Network-number remapping changes an AppleTalk data packet's
  3400.    DDP header and may also change its data. Thus, if a packet contains a
  3401.    DDP checksum, when the exterior router remaps network numbers
  3402.    contained in the packet, it must verify that the checksum is correct,
  3403.    then set the checksum to 0. If the checksum is incorrect, the
  3404.    exterior router should discard the packet.
  3405.  
  3406.    An exterior router can perform network-number remapping either
  3407.    statically or dynamically. Static remapping reserves specific network
  3408.    numbers in the remapping range for mapping specific UIs. Dynamic
  3409.    remapping assigns network numbers in the remapping range to networks
  3410.    as they become known to an exterior router.
  3411.  
  3412.    Static remapping is simpler to implement and provides a known mapping
  3413.    for use in network management. However, it may limit the number of
  3414.    UIs that an exterior router can import into its local internet.
  3415.  
  3416.  
  3417.  
  3418. Oppenheimer                                                    [Page 61]
  3419.  
  3420. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  3421.  
  3422.  
  3423.    Dynamic mapping requires a scheme for network number reuse, but may
  3424.    provide connectivity to a greater number of networks across a tunnel.
  3425.  
  3426.    To avoid having the same UI refer to two different networks when
  3427.    remapping network numbers dynamically, an exterior router should
  3428.    reuse network numbers in its remapping range only when no other
  3429.    network numbers are available. If a network goes down, an exterior
  3430.    router should not immediately reassign the UI that referred to that
  3431.    network to another network that just came up on the internet.
  3432.  
  3433.    An exterior router connected to more than one tunnel should function
  3434.    as though it were two exterior routers-each connected to one tunnel
  3435.    and both connected to one AppleTalk internet. Thus, such an exterior
  3436.    router must use remapped network numbers when sending routing
  3437.    information across a tunnel about networks that are accessible
  3438.    through another tunnel.
  3439.  
  3440.    Network Numbers in Data
  3441.  
  3442.    To remap network numbers properly, an exterior router must be aware
  3443.    of their presence within AppleTalk data packets. It is difficult to
  3444.    detect network numbers in data packets, because they could be
  3445.    anywhere within a data packet. For example, NBP includes network
  3446.    addresses as part of its data-in entity addresses. However, the data
  3447.    packets for very few protocols contain any network numbers. Some
  3448.    third-party protocols may contain network addresses in their data.
  3449.    Protocols that contain network addresses in their data may not
  3450.    function properly across remapping exterior routers.
  3451.  
  3452.    Packets used for network management-such as RTMP Route Data Response
  3453.    (RDR) and Simple Network Management Protocol (SNMP) packets-contain
  3454.    network numbers in their data. For detailed information about
  3455.    handling network numbers in SNMP packets, see the section "Network
  3456.    Management" later in this chapter.
  3457.  
  3458.    Problems With Loops
  3459.  
  3460.    Network-number remapping introduces some problems on an internet when
  3461.    loops exist across a tunnel. If network-number remapping is active,
  3462.    two AppleTalk internets connected by a tunnel should not be
  3463.    interconnected in any other way. If a redundant path to an internet
  3464.    exists, a remapped network range can loop back through that path to
  3465.    the exterior router that originally remapped the network range. When
  3466.    this occurs, two different network ranges-the network range actually
  3467.    configured and the remapping of the configured range-refer to one
  3468.    network.
  3469.  
  3470.  
  3471.  
  3472.  
  3473.  
  3474. Oppenheimer                                                    [Page 62]
  3475.  
  3476. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  3477.  
  3478.  
  3479.    The remapped network range apparently refers to a new network in the
  3480.    exterior router's local internet. Such a network is referred to as a
  3481.    shadow network. The exterior router cannot determine that it has
  3482.    received a network range that it had previously remapped, because
  3483.    there is no apparent difference between a remapped network range and
  3484.    an actual network range. Thus, unless an administrator configures an
  3485.    exterior router with an explicit list of networks to export, the
  3486.    exterior router again remaps the network range, then exports the
  3487.    remapped network range, sending it around the loop. The network range
  3488.    is remapped repeatedly until the apparent distance to the network
  3489.    exceeds the hop-count limit.  Exterior routers that implement
  3490.    network-number remapping should avoid establishing such infinite
  3491.    loops. For information about preventing such loops, see the section
  3492.    "Routing Loops" later in this chapter.
  3493.  
  3494.    Redundant Paths
  3495.  
  3496.    Under certain circumstances, it might be desirable to create a
  3497.    redundant path, which is a special type of loop. Redundant paths
  3498.    connect an internet to a tunnel through two or more exterior routers.
  3499.    If network-number remapping is active, all redundant exterior routers
  3500.    must use the same DI to represent the local internet-and must map UIs
  3501.    representing remote networks in incoming packets to the same local
  3502.    network numbers.
  3503.  
  3504.    To allow redundant exterior routers to achieve such cooperation, a
  3505.    network administrator might configure all redundant exterior routers
  3506.    with the same DI and complete remapping information for all imported
  3507.    networks. Alternatively, a network administrator might configure one
  3508.    exterior router with this information and all redundant exterior
  3509.    routers could obtain the information from the configured exterior
  3510.    router. AURP does not currently support this functionality, but may
  3511.    do so in the future.
  3512.  
  3513.    Tunnels With Partial Network-Number Remapping
  3514.  
  3515.    When network-number remapping is active on a tunneling port, an
  3516.    exterior router maps network numbers in packets received through the
  3517.    tunnel into the remapping range for its local internet. Because a
  3518.    network administrator configures network-number remapping on
  3519.    individual exterior routers, network-number remapping may be
  3520.    configured on some exterior routers on a tunnel, but not on others-
  3521.    potentially causing network-numbering conflicts due to partial
  3522.    network-number remapping. Whenever possible, an administrator should
  3523.    configure network-number remapping either on all exterior routers on
  3524.    a tunnel or on none of them.  Otherwise, network-numbering conflicts
  3525.    are likely to occur on some of the exterior routers-especially on
  3526.    large, interorganizational internets.
  3527.  
  3528.  
  3529.  
  3530. Oppenheimer                                                    [Page 63]
  3531.  
  3532. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  3533.  
  3534.  
  3535.    In addition to potential network-numbering conflicts, partial
  3536.    network-number remapping and the lack of loop detection between
  3537.    nonremapping exterior routers may cause shadow copies of networks
  3538.    connected to more than one nonremapping exterior router to appear in
  3539.    the routing tables on remapping exterior routers.
  3540.  
  3541.    An exterior router on which network-number remapping is active
  3542.    performs loop detection. Therefore, when network-number remapping is
  3543.    active on all of the exterior routers on a tunnel, no loops can exist
  3544.    across the tunnel. However, exterior routers on which network-number
  3545.    remapping is not active do not perform loop detection. Thus, when
  3546.    network-number remapping is not active on some of the exterior
  3547.    routers on a tunnel, any loops that exist between nonremapping
  3548.    exterior routers are not detected.
  3549.  
  3550.    In the example shown in Figure 4-3, shadow copies of all networks
  3551.    that are in the local internets of both exterior router B and
  3552.    exterior router C, on which network-number remapping is not active,
  3553.    appear in the routing table of exterior router A, on which network-
  3554.    number remapping is active.
  3555.  
  3556.       <<Figure 4-3  A tunnel with partial network-number remapping>>
  3557.  
  3558.    Clustering Remapped Networks
  3559.  
  3560.    Because a remapping range is a range of sequential network numbers,
  3561.    an exterior router can represent multiple remapped networks as a
  3562.    single extended network within its local internet-that is, it can
  3563.    cluster remapped networks. Clustering greatly reduces the size of the
  3564.    routing tables that are maintained and sent by routers within an
  3565.    internet, as well as the amount of RTMP traffic on the internet.
  3566.    Clustering may also reduce the amount of NBP traffic on an internet.
  3567.  
  3568.    For example, as shown in Figure 4-4, if networks in an internet have
  3569.    the numbers 1, 100, and 1000, and an exterior router connected to a
  3570.    different part of the internet receives these network numbers across
  3571.    the tunnel, that exterior router might remap the network numbers to
  3572.    21, 22, and 23. When sending RTMP packets within its local internet,
  3573.    the remapping exterior router can represent the three networks as a
  3574.    single extended network with a network range from 21 to 23. The zones
  3575.    associated with the extended network include all of the zones
  3576.    associated with the three imported network numbers.
  3577.  
  3578.             <<Figure 4-4  Clustering remapped network numbers>>
  3579.  
  3580.    An exterior router determines which remapped network numbers it
  3581.    should cluster. For example, an exterior router might create one
  3582.    cluster for each other exterior router on the tunnel. However, an
  3583.  
  3584.  
  3585.  
  3586. Oppenheimer                                                    [Page 64]
  3587.  
  3588. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  3589.  
  3590.  
  3591.    exterior router can include no more than 255 zones in one cluster.
  3592.  
  3593.    An exterior router that implements clustering must maintain the
  3594.    actual network range and zone list for each network in a cluster. The
  3595.    exterior router monitors all NBP FwdReq packets to be forwarded
  3596.    across the tunnel-including those it generates in response to BrRq
  3597.    packets. It examines the DDP destination network number in each
  3598.    FwdReq packet to determine the cluster to which it is addressed. The
  3599.    exterior router then generates one FwdReq packet for each clustered
  3600.    network for which the FwdReq packet contains a zone name, and sends
  3601.    that packet to the next internet router for the network. The DDP
  3602.    destination network number in such a FwdReq packet corresponds to the
  3603.    starting network number of a network's actual network range.
  3604.  
  3605.    A disadvantage of clustering is that clusters are static. An exterior
  3606.    router cannot notify its local internet that a specific network or
  3607.    zone in a cluster has gone down. An exterior router's implementation
  3608.    of clustering could allow a network administrator to initiate
  3609.    reclustering-in which the exterior router notifies the internet that
  3610.    an entire cluster has gone down, then creates a new cluster that does
  3611.    not include the networks that have gone down. However, such
  3612.    reclustering would cause a temporary loss of connectivity to those
  3613.    networks in the cluster that are still accessible. Therefore, an
  3614.    exterior router should not automatically recluster network numbers.
  3615.  
  3616.    REUSING NETWORK NUMBERS WITHIN A CLUSTER: Under certain conditions,
  3617.    an exterior router that implements clustering might reuse network
  3618.    numbers within a cluster. If a network went down, then came back up
  3619.    with the same zone list, an exterior router could map its network
  3620.    range into the same remapping range and include it in the same
  3621.    cluster. Otherwise, an exterior router should not reuse network
  3622.    numbers within a cluster, unless no other network numbers within the
  3623.    remapping range are available. In any case, an exterior router can
  3624.    reuse network numbers within a cluster only if a new network has a
  3625.    network range that fits in an unused range of network numbers within
  3626.    the cluster and a zone list that is a subset of the cluster's zone
  3627.    list.
  3628.  
  3629.    The implementation of clustering in an exterior router is complex.
  3630.    See the Appendix, "Implementation Details," for some ways in which
  3631.    clustering could be implemented.
  3632.  
  3633.    Zone-Name Management
  3634.  
  3635.    To enhance zone-name management within an AppleTalk internet, AURP
  3636.    provides Get Domain Zone List and Get Zone Nets requests-which
  3637.    function similarly to the ZIP GetZoneList command and ZI-Req command,
  3638.    respectively. However, as when using RTMP and ZIP, if two networks in
  3639.  
  3640.  
  3641.  
  3642. Oppenheimer                                                    [Page 65]
  3643.  
  3644. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  3645.  
  3646.  
  3647.    an internet include zones that have the same zone name in their zone
  3648.    lists, exterior routers merge the zones into one zone-regardless of
  3649.    whether network-number remapping is active on one or more of the
  3650.    exterior routers.
  3651.  
  3652.    Because AppleTalk data packets often contain zone names, AURP
  3653.    provides no means of remapping zone names. When importing or
  3654.    exporting zone names, an exterior router should not modify them in
  3655.    any way.
  3656.  
  3657.    On a very large internet, zone names may become unmanageable.
  3658.    Therefore, an administrator should use domain-specific prefixes-such
  3659.    as Engineering or Sales-for zone names on such an internet. The use
  3660.    of a third-party hierarchical Chooser also might simplify zone-name
  3661.    management.
  3662.  
  3663.    Hop-Count Reduction
  3664.  
  3665.    Generally, an exterior router increases the hop count in the DDP
  3666.    header of an AppleTalk data packet by at least one when it forwards
  3667.    the packet across a tunnel. Once a packet traverses 15 routers-either
  3668.    local routers or exterior routers-its hop count exceeds the maximum.
  3669.    Thus, when an exterior router receives a packet through its tunneling
  3670.    port, it should examine that packet's DDP hop count before forwarding
  3671.    the packet. If the exterior router receives a packet with a hop count
  3672.    of 15 hops, it does not forward the packet to another router, but
  3673.    discards the packet.
  3674.  
  3675.    When a tunnel or point-to-point link connects AppleTalk internets,
  3676.    the distance that a packet must traverse can easily exceed 15 hops. A
  3677.    network administrator might need full connectivity between two
  3678.    internets at a distance exceeding 15 hops. If the distance across an
  3679.    exterior router's local internet is already at or near the 15-hop
  3680.    limit, the exterior router must reduce the perceived distance that a
  3681.    packet must traverse to allow the packet to reach a destination at a
  3682.    distance that exceeds 15 hops. To overcome DDP's 15-hop limit, an
  3683.    exterior router reduces the hop count in the DDP header of an Apple
  3684.    data packet received through a tunnel before forwarding the packet
  3685.    into its local AppleTalk internet. An exterior router should reduce
  3686.    the hop count only by the number of hops necessary to allow the
  3687.    packet to reach its destination without exceeding the hop-count
  3688.    limit.
  3689.  
  3690.    When an exterior router receives a packet through the tunnel, it
  3691.    examines the routing-table entry for that packet's destination
  3692.    network to determine the remaining distance to that network. If the
  3693.    distance already traversed by the packet-the packet's current hop
  3694.    count-plus the distance to the destination network is less than 15
  3695.  
  3696.  
  3697.  
  3698. Oppenheimer                                                    [Page 66]
  3699.  
  3700. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  3701.  
  3702.  
  3703.    hops, the exterior router simply forwards the packet. If adding the
  3704.    destination network's distance to the packet's current hop count
  3705.    causes the hop count to exceed 15 hops, the exterior router sets the
  3706.    hop count to the following value: 15 minus the distance in hops to
  3707.    the destination network. The exterior router then forwards the
  3708.    packet.
  3709.  
  3710.    Using hop-count reduction, an exterior router must overcome the 15-
  3711.    hop limits imposed by both DDP and RTMP. To overcome RTMP's 15-hop
  3712.    limit, an exterior router should represent all networks accessible
  3713.    through the tunnel to routers in its local internet as one hop away
  3714.    when hop-count reduction is active on a tunneling port. This allows
  3715.    routers to maintain and send routing information about networks
  3716.    beyond the 15-hop limit and achieve full connectivity.
  3717.  
  3718.    Constraints on Hop-Count Reduction
  3719.  
  3720.    An interdomain loop exists when a redundant path connects two parts
  3721.    of an internet that are connected through two exterior routers on a
  3722.    tunnel.  The proper operation of hop-count reduction requires that no
  3723.    interdomain loops exist across a tunnel. For detailed information
  3724.    about interdomain loops see the next section, "Routing Loops."
  3725.  
  3726.    Because network-number remapping requires that no interdomain loops
  3727.    exist on the internet, an exterior router can perform hop-count
  3728.    reduction whenever network-number remapping is active, without any
  3729.    risk of a packet being forwarded in an infinite routing loop.
  3730.    Generally, an exterior router should not perform loop detection when
  3731.    network-number remapping is inactive.
  3732.  
  3733.    Routing Loops
  3734.  
  3735.    A routing loop exists when more than one path connects two exterior
  3736.    routers-both the path through the tunnel and a path through the
  3737.    exterior routers' local internets. When network-number remapping is
  3738.    not active on an exterior router, a routing loop can provide an
  3739.    alternative path to a network. However, when network-number remapping
  3740.    or hop-count reduction is active on an exterior router, all exterior
  3741.    routers must avoid establishing loops across the tunnel. Otherwise,
  3742.    if a routing loop went undetected, multiple routing-table entries
  3743.    that referred to the same actual AppleTalk networks using different
  3744.    remapping ranges might fill the routing tables of all of the exterior
  3745.    routers on a tunnel.
  3746.  
  3747.    First-Order Loops
  3748.  
  3749.    In a first-order loop, a pair of exterior routers that are performing
  3750.    network-number remapping across a tunnel are also connected through
  3751.  
  3752.  
  3753.  
  3754. Oppenheimer                                                    [Page 67]
  3755.  
  3756. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  3757.  
  3758.  
  3759.    another path, on which there are no remapping exterior routers. In
  3760.    Figure 4-5, exterior routers A and B are remapping network numbers
  3761.    across an AppleTalk tunnel, and exterior router C-which is not
  3762.    remapping network numbers-creates a first-order routing loop.
  3763.    Exterior router A's network range, 1 through 4, loops back to it
  3764.    through the tunnel and may be remapped again.
  3765.  
  3766.                     <<Figure 4-5  A first-order loop>>
  3767.  
  3768.    Second-Order Loops
  3769.  
  3770.    In a second-order loop, one or more additional pairs of remapping
  3771.    exterior routers are in the loop. In Figure 4-6, exterior routers A
  3772.    and B are remapping network numbers across the AppleTalk tunnel that
  3773.    connects them, and another pair of exterior routers, C1 and C2-which
  3774.    are also performing remapping across the tunnel that connects them-
  3775.    creates a second-order routing loop. Exterior router A's network
  3776.    range, 1 through 4, is remapped by exterior router C2 to the network
  3777.    range 101 through 104, then loops back to exterior router A through
  3778.    the tunnel.
  3779.  
  3780.                     <<Figure 4-6  A second-order loop>>
  3781.  
  3782.    Self-Caused and Externally Caused Loops
  3783.  
  3784.    Routing loops can be either self-caused or externally caused. A self-
  3785.    caused loop results when the detecting exterior router itself comes
  3786.    on line. An externally caused loop results when another router comes
  3787.    on line somewhere on the internet, after the detecting router has
  3788.    been running for some time.
  3789.  
  3790.    Loop-Detection Process
  3791.  
  3792.    The following sections describe the phases of the minimal loop-
  3793.    detection process that an exterior router must employ when either
  3794.    network-number remapping or hop-count reduction is active. An
  3795.    exterior router can implement an enhanced loop-detection scheme.
  3796.  
  3797.    LOOP-INDICATIVE ROUTING INFORMATION: A remapping exterior router
  3798.    should always examine routing information received through a tunnel
  3799.    for indications that a routing loop may exist. Loop-indicative
  3800.    routing information appears to refer to networks across the tunnel.
  3801.    However, it may actually refer to networks in the exterior router's
  3802.    own local internet if the networks' routing information has looped
  3803.    back through the tunnel.
  3804.  
  3805.    In the following definition of loop-indicative information,
  3806.  
  3807.  
  3808.  
  3809.  
  3810. Oppenheimer                                                    [Page 68]
  3811.  
  3812. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  3813.  
  3814.  
  3815.       the network range for the network connected to a given port of an
  3816.       exterior router is referred to as ns through ne
  3817.  
  3818.       the zone list for that network is referred to as z1 through zn
  3819.  
  3820.    The routing information that a remapping exterior router receives
  3821.    through a tunneling port is loop indicative if both of the following
  3822.    conditions are true for some port on the router:
  3823.  
  3824.       The size of the network range in the routing information is ne-
  3825.       ns+1.
  3826.  
  3827.       The zone list in the routing information consists precisely of z1
  3828.       through zn.
  3829.  
  3830.    Thus, the routing information could represent a remapping of the
  3831.    network range for a network connected directly to one of the exterior
  3832.    router's ports.
  3833.  
  3834.    An exterior router most commonly receives loop-indicative information
  3835.    at startup when the process of bringing up the tunnel may create a
  3836.    self-caused loop. An exterior router may also receive loop-indicative
  3837.    information if another router connects two AppleTalk domains that are
  3838.    already connected through the tunnel and creates an externally caused
  3839.    loop.
  3840.  
  3841.    If a remapping exterior router receives loop-indicative routing
  3842.    information through a tunnel, it should start a loop-investigation
  3843.    process. For information about the loop-investigation process, see
  3844.    the next section, "Loop-Investigation Process."
  3845.  
  3846.    LOOP-INVESTIGATION PROCESS: To confirm or deny the existence of a
  3847.    suspected loop, an exterior router performs a loop-investigation
  3848.    process, in which it sends an AppleTalk data packet out the tunneling
  3849.    port, then observes whether that packet loops back through a port
  3850.    connected to its local internet. The exterior router sends the packet
  3851.    to the address corresponding to its own address on the network that
  3852.    it suspects may actually be a shadow copy of a network connected
  3853.    directly to one of its ports.
  3854.  
  3855.    LOOP PROBE PACKET: A Loop Probe packet is an AppleTalk data packet
  3856.    that an exterior router sends out a tunneling port to confirm or deny
  3857.    the existence of a loop. It is a new type of RTMP packet and has the
  3858.    function code 4. Figure 4-7 shows the format of a Loop Probe packet.
  3859.  
  3860.                  <<Figure 4-7  Loop Probe packet format>>
  3861.  
  3862.    The source node ID and source network number in a Loop Probe packet
  3863.  
  3864.  
  3865.  
  3866. Oppenheimer                                                    [Page 69]
  3867.  
  3868. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  3869.  
  3870.  
  3871.    should be those of the port for which the exterior router received
  3872.    loop-indicative information. An exterior router can send a Loop Probe
  3873.    packet through any socket.
  3874.  
  3875.    A Loop Probe packet's destination network number is the network
  3876.    number to which that port's network number would be remapped if the
  3877.    loop-indicative information were actually a shadow copy of that
  3878.    port's routing information. Refer to the port's actual network number
  3879.    as nu(ns<=nu<=ne). If the network range in the loop-indicative
  3880.    information were rs through re, the packet's destination network
  3881.    number would be rs+nu-ns.
  3882.  
  3883.    A Loop Probe packet's destination node ID is that of the exterior
  3884.    router on the port for which the exterior router received loop-
  3885.    indicative information. The packet's destination socket is socket 1-
  3886.    the RTMP socket.
  3887.  
  3888.    A Loop Probe packet's data field always begins with a long word that
  3889.    has the value 0. The remainder of the data field should contain
  3890.    information that the exterior router that sends the packet can use to
  3891.    identify that packet if it receives the packet through its local
  3892.    internet. An exterior router might receive a Loop Probe packet sent
  3893.    by another exterior router if a loop did not actually exist and the
  3894.    other exterior router sent a Loop Probe packet to a random node on
  3895.    the internet rather than to itself. The node receiving the Loop Probe
  3896.    packet might be an exterior router that also sent a Loop Probe
  3897.    packet. To prevent an exterior router that receives such a Loop Probe
  3898.    packet from falsely concluding that a loop exists, the exterior
  3899.    router sending the packet must insert sufficient data in that
  3900.    packet's data field to allow it to recognize the packet as the one it
  3901.    sent.
  3902.  
  3903.    An exterior router initiating a loop-investigation process should
  3904.    forward a Loop Probe packet through the tunnel to the next internet
  3905.    router for the packet's destination network-just as it would any
  3906.    other AppleTalk data packet. This next internet router should always
  3907.    be the exterior router that sent the loop-indicative information.
  3908.  
  3909.    A remapping exterior router forwarding a Loop Probe packet into its
  3910.    local internet must process that packet differently from other
  3911.    AppleTalk data packets in one way. If the exterior router's remapping
  3912.    database does not include the source network number in the packet's
  3913.    DDP header, the exterior router should forward the packet without
  3914.    remapping the source network number. At startup, remapping
  3915.    information is generally unavailable. However, the absence of
  3916.    remapping information should not affect the loop-detection process.
  3917.  
  3918.    If a loop exists, the exterior router that originally sent the Loop
  3919.  
  3920.  
  3921.  
  3922. Oppenheimer                                                    [Page 70]
  3923.  
  3924. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  3925.  
  3926.  
  3927.    Probe packet receives that packet through its local internet. The
  3928.    data in the packet remains unchanged. The exterior router can use
  3929.    that data to confirm the existence of a loop on the internet.
  3930.  
  3931.    If a Loop Probe packet returns to the exterior router through the
  3932.    tunnel out which it was sent, a loop exists between two other
  3933.    exterior routers on the tunnel, but does not involve the exterior
  3934.    router that sent the packet. The sending router need take no action.
  3935.  
  3936.    An exterior router should send a Loop Probe packet at least four
  3937.    times.  The retransmission timeout should be no less than two
  3938.    seconds. Once the exterior router has retransmitted a Loop Probe
  3939.    packet four times and that packet has not returned to the exterior
  3940.    router through its local internet, the exterior router determines
  3941.    that no loop exists.
  3942.  
  3943.    If the exterior router receives a Loop Probe packet containing the
  3944.    correct data field through its local internet, this confirms the
  3945.    existence of a loop. The exterior router should deactivate the
  3946.    tunneling port, log an error, and set the state of all routing-table
  3947.    entries for exterior routers connected to that tunnel to BAD.
  3948.  
  3949.    NOTE:  The exterior router need not deactivate a tunneling port on
  3950.    which it detects a loop. However, the exterior router must disconnect
  3951.    with the exterior router that sent the loop-indicative information.
  3952.    However, disconnecting from only that exterior router might
  3953.    inadvertently result in a partially connected tunnel or in a lack of
  3954.    connectivity through the tunnel that would be difficult to detect.
  3955.  
  3956.    LIMITATIONS OF LOOP DETECTION: This loop-detection process becomes
  3957.    ineffective if, at some point in the loop, another exterior router
  3958.  
  3959.       hides networks connected directly to the ports of the exterior
  3960.       router that sent the Loop Probe packet
  3961.  
  3962.       clusters the network ranges of networks connected directly to the
  3963.       exterior router's ports
  3964.  
  3965.       is not remapping network numbers-resulting in partial network-
  3966.       number remapping
  3967.  
  3968.    In such cases, the exterior router that initiated the loop-detection
  3969.    process may never receive loop-indicative information, even though a
  3970.    loop exists.
  3971.  
  3972.    Using Alternative Paths
  3973.  
  3974.    AURP provides two mechanisms that allow a network administrator to
  3975.  
  3976.  
  3977.  
  3978. Oppenheimer                                                    [Page 71]
  3979.  
  3980. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  3981.  
  3982.  
  3983.    configure a port on an exterior router to forward packets over an
  3984.    alternative path to a network only when the primary path to that
  3985.    network is unavailable:
  3986.  
  3987.       hop-count weighting
  3988.  
  3989.       backup paths
  3990.  
  3991.    By configuring hop-count weighting on a port or configuring a port as
  3992.    a backup path, an administrator can reduce the amount of traffic on a
  3993.    slow point-to-point link or tunnel. These mechanisms are also
  3994.    available on links using RTMP.
  3995.  
  3996.    Hop-Count Weighting
  3997.  
  3998.    A network administrator can configure hop-count weighting on a port
  3999.    to increase the routing distance through a port by counting a link to
  4000.    another exterior router as more than one hop. Increasing the routing
  4001.    distance through a port may cause traffic to traverse an alternative
  4002.    path. The routers on an internet forward packets over an alternative
  4003.    path to a network if
  4004.  
  4005.       an alternative path is available
  4006.  
  4007.       the perceived distance to that network is shorter over the
  4008.       alternative path
  4009.  
  4010.    However, a network administrator should not set the hop-count weight
  4011.    for a link so high that distances between networks across that link
  4012.    exceed the limit of 15 hops. Otherwise, if the link on which hop-
  4013.    count weighting was active were the only available path, the exterior
  4014.    router would be unable to provide full connectivity to all networks
  4015.    on the internet.
  4016.  
  4017.    To implement hop-count weighting, an exterior router should make the
  4018.    following changes to RTMP and the DDP routing process:
  4019.  
  4020.       When an exterior router uses RTMP or AURP to broadcast the
  4021.       networks that are accessible through a link on which hop-count
  4022.       weighting is active, the distance attributed to each network should
  4023.       equal its actual distance plus the hop-count weight specified.
  4024.  
  4025.       Before an exterior router forwards a DDP data packet to a network
  4026.       across that link, it should add the specified hop-count weight to the
  4027.       value in the hop-count field of the packet's DDP header.
  4028.  
  4029.  
  4030.  
  4031.  
  4032.  
  4033.  
  4034. Oppenheimer                                                    [Page 72]
  4035.  
  4036. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  4037.  
  4038.  
  4039.    Backup Paths
  4040.  
  4041.    A network administrator can configure a port on an exterior router as
  4042.    a backup path. The routers on an internet forward AppleTalk data
  4043.    packets across a backup path only when an exterior router on which a
  4044.    port is configured as a backup path determines that no other path to
  4045.    a specific network or networks is available.
  4046.  
  4047.    Regardless of the distance that routing packets must traverse across
  4048.    a primary path to a network, routers on the internet use the primary
  4049.    path as long as it remains available. When the exterior router on
  4050.    which a port is configured as a backup path determines that the
  4051.    primary path to a network is no longer available and that network is
  4052.    accessible across the backup path, the exterior router broadcasts
  4053.    routing information about networks accessible across the backup path
  4054.    to its local internet.
  4055.  
  4056.    NOTE:  An exterior router at each end of the backup path maintains a
  4057.    complete routing table for the entire internet, and sends AURP or
  4058.    RTMP routing packets across the backup path, regardless of whether
  4059.    the backup path is in use.
  4060.  
  4061.    If an exterior router is currently providing access to a network
  4062.    through a backup path and the primary path to that network again
  4063.    becomes available, the exterior router starts broadcasting routing
  4064.    information that indicates the primary path to the network, rather
  4065.    than the backup path. The routers on the exterior router's local
  4066.    internet can again use the primary path to that network.
  4067.  
  4068.    PROBLEMS REACTIVATING THE PRIMARY PATH: When an exterior router is
  4069.    providing access to a network through a backup path and the primary
  4070.    path to that network again becomes available, it is possible that the
  4071.    exterior router may not become aware that the primary path is
  4072.    available.  This can occur when other routers in the exterior
  4073.    router's local internet use the backup path, rather than a newly
  4074.    available primary path, because the backup path traverses a shorter
  4075.    distance. The other routers have no way of knowing that an active
  4076.    path is a backup path.  They do not notify the exterior router
  4077.    connected to the shorter backup path about the primary path's
  4078.    availability.
  4079.  
  4080.    Once the primary path becomes unavailable and routers on the internet
  4081.    use the backup path, reconfiguring the exterior router so it will
  4082.    again use the primary path may be necessary.
  4083.  
  4084.    Network Management
  4085.  
  4086.    A Simple Network Management Protocol (SNMP) Management Information
  4087.  
  4088.  
  4089.  
  4090. Oppenheimer                                                    [Page 73]
  4091.  
  4092. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  4093.  
  4094.  
  4095.    Base (MIB) allows the remote management of tunneling, routing-
  4096.    information propagation, and the representation of wide area routing
  4097.    information.  Refer to the "IETF Draft: Macintosh System MIB" on
  4098.    E.T.O. for detailed information about the structure and content of
  4099.    AURP's many remotely manageable parameters.
  4100.  
  4101.    Network-Number Remapping and Network Management
  4102.  
  4103.    The packets of network-management protocols-regardless of whether
  4104.    SNMP forms their basis-often contain information about specific
  4105.    AppleTalk network numbers. An exterior router cannot remap network
  4106.    numbers in data. Therefore, when querying devices across a tunnel,
  4107.    network-management protocols always return network numbers that have
  4108.    not been remapped. However, a remote network-management station using
  4109.    SNMP could use the AURP MIB to query a remapping exterior router to
  4110.    obtain remapped network numbers from the exterior router's remapping
  4111.    database.
  4112.  
  4113.    Network Hiding and Network Management
  4114.  
  4115.    Even though an exterior router is hiding a network from a particular
  4116.    port, that network's routing information should be available to a
  4117.    network-management station across that port. Network hiding should
  4118.    not affect network management. Thus, an exterior router should still
  4119.    return routing information for hidden networks in responses to
  4120.    network-management queries. A network-management station using SNMP
  4121.    could use the AURP MIB to query an exterior router to obtain
  4122.    information about hidden networks.
  4123.  
  4124.    Unaffected Network-Management Packets
  4125.  
  4126.    Network-management packets that network-number remapping and network
  4127.    hiding should not affect include:
  4128.  
  4129.       SNMP requests received through an AURP port
  4130.  
  4131.       SNMP responses sent through an AURP port
  4132.  
  4133.       RTMP responses sent through an AURP port
  4134.  
  4135.       Route Data responses sent through an AURP port
  4136.  
  4137.       ZIP queries received through an AURP port
  4138.  
  4139.       ZIP requests received through an AURP port
  4140.  
  4141.       ZIP replies sent through an AURP port
  4142.  
  4143.  
  4144.  
  4145.  
  4146. Oppenheimer                                                    [Page 74]
  4147.  
  4148. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  4149.  
  4150.  
  4151. APPENDIX:  IMPLEMENTATION DETAILS
  4152.  
  4153.    This appendix provides information that may assist you in
  4154.    implementing AURP. It does not specify protocol requirements.
  4155.  
  4156.    Developers implementing AURP routers may want to purchase the Apple
  4157.    Internet Router, a product of Apple Computer. The Apple Internet
  4158.    Router provides many additional examples of how you might implement
  4159.    the various features of AURP.
  4160.  
  4161.    State Diagrams
  4162.  
  4163.    Figure A-1 shows the state diagram for the AURP data receiver.
  4164.  
  4165.              <<Figure A-1  AURP data receiver state diagram>>
  4166.  
  4167.    Figure A-2 shows the state diagram for the AURP data sender.
  4168.  
  4169.               <<Figure A-2  AURP data sender state diagram>>
  4170.  
  4171.    AURP Table Overflow
  4172.  
  4173.    It is possible for an AURP data receiver to have insufficient storage
  4174.    capacity to maintain all of the routing information sent to it by a
  4175.    peer data sender. Because the data sender does not retransmit routing
  4176.    information, the data receiver should set a flag indicating that a
  4177.    table-overflow condition exists. If additional storage later becomes
  4178.    available, the data receiver should try to obtain the missing
  4179.    information. If zone information is lost, the data receiver can
  4180.    obtain complete zone information by sending the appropriate ZI-Req
  4181.    packets. If network information is lost, the data receiver should
  4182.    send an RI-Req to obtain the complete routing table.
  4183.  
  4184.    A Scheme for Updates Following Initial Information Exchange
  4185.  
  4186.    As described in the section "Sending Updates Following the Initial
  4187.    Exchange of Routing Information" in Chapter 3, an exterior router
  4188.    must present complete and accurate routing information to all
  4189.    exterior routers, even if a new connection is established with that
  4190.    exterior router when the exterior router has update events pending-
  4191.    that is, update events not yet sent in RI-Upd packets. This section
  4192.    details one scheme for presenting routing information to both new and
  4193.    old connections correctly, even if multiple update events occur for a
  4194.    given network in an update period during which the exterior router
  4195.    establishes new connections. More complex schemes could provide more
  4196.    up-to-date information, at the cost of greater implementational
  4197.    complexity.
  4198.  
  4199.  
  4200.  
  4201.  
  4202. Oppenheimer                                                    [Page 75]
  4203.  
  4204. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  4205.  
  4206.  
  4207.    Assume that an exterior router has a number of AURP connections
  4208.    established with other routers and that a series of update events for
  4209.    a given network occur in the exterior router's local internet. Once
  4210.    these events have occurred, but before the update interval expires-
  4211.    that is, before the exterior router sends RI-Upd packets over its
  4212.    connections-the exterior router establishes a new AURP connection
  4213.    with another exterior router and receives an RI-Req packet from that
  4214.    exterior router. This section describes the information about the
  4215.    network that the RI-Rsp packet should contain. It also describes the
  4216.    update event that the exterior router should send in the next RI-Upd
  4217.    packet, assuming that it receives no additional update events for the
  4218.    network.
  4219.  
  4220.    Two scenarios are possible. In the first scenario, a network for
  4221.    which the exterior router is not exporting information at the
  4222.    beginning of an update interval either comes up in the exterior
  4223.    router's local internet, or a new path to the network that is shorter
  4224.    than the path through the tunnel comes up in the exterior router's
  4225.    local internet. In either case, the RI-Rsp packet should not include
  4226.    the new network.
  4227.  
  4228.    By not including the new network in the RI-Rsp, the implementation
  4229.    can simply continue to follow the state diagram provided in the
  4230.    section "Sending Routing Information Update Packets" in Chapter 3. If
  4231.    only an NDC event or no additional update event occurs for the
  4232.    network, the next RI-Upd packet that the exterior router sends on
  4233.    both old and new connections should contain an NA event for the
  4234.    network. If an NRC or ND event occurs for the network, the exterior
  4235.    router should not include an event tuple for the network in the RI-
  4236.    Upd. This sequence matches the state diagram precisely. If the RI-Rsp
  4237.    did contain information about the network, new connections would
  4238.    require a different state diagram.
  4239.  
  4240.    In the second scenario, the exterior router initially exports
  4241.    information for a network, then an update event occurs for that
  4242.    network.  In all cases, the RI-Rsp packet should contain up-to-date
  4243.    information about the network from the exterior router's central
  4244.    routing table, and the next RI-Upd packet should contain the specific
  4245.    event that the state table indicates for that network. For example,
  4246.    if an ND or NRC event occurs for the network, the network should not
  4247.    be included in the RI-Rsp, while if an NDC event occurs, it should be
  4248.    included in the RI-Rsp.
  4249.  
  4250.    This scheme may result in some exterior routers receiving unexpected
  4251.    update events, which they must process as specified in the section
  4252.    "Processing Inconsistent Update Events" in Chapter 3. For example,
  4253.    another exterior router with which the exterior router establishes a
  4254.    new connection might receive an ND or NRC event for a network of
  4255.  
  4256.  
  4257.  
  4258. Oppenheimer                                                    [Page 76]
  4259.  
  4260. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  4261.  
  4262.  
  4263.    which it was unaware. The receiving exterior router would ignore the
  4264.    event.
  4265.  
  4266.    In an alternative way of evaluating and possibly implementing this
  4267.    scheme, the information for a given network that is sent in the
  4268.    initial RI-Rsp packet depends on the particular update event that is
  4269.    pending for that network when the exterior router sends the RI-Rsp.
  4270.    Specifically, an exterior router should include a network for which
  4271.    it has an update event pending in the RI-Rsp packet only if the
  4272.    pending update event is an NDC. Otherwise, the exterior router should
  4273.    not include the network in the RI-Rsp. Following this RI-Rsp, the
  4274.    exterior router sends RI-Upd packets as usual, which include other
  4275.    pending events, as necessary.
  4276.  
  4277.    Implementation Effort for Different Components of AURP
  4278.  
  4279.    AURP contains various enhancements to AppleTalk routing. The only
  4280.    components of AURP that are required are those specified in Chapter
  4281.    3.  The required components of AURP provide the functionality needed
  4282.    to replace RTMP and ZIP, completely and compatibly, on tunnels and
  4283.    point-to-point links, without losing any functionality and with
  4284.    greatly reduced routing traffic. Optional features of AURP provide
  4285.    functionality beyond that of RTMP and ZIP. This functionality is
  4286.    especially useful in a wide area network environment.
  4287.  
  4288.    The chart shown in Figure A-3 provides rough estimates of the
  4289.    percentage of development time needed to implement, debug, and test
  4290.    the various components of a complete AURP implementation. It can
  4291.    provide developers with some idea of the implementational complexity
  4292.    of these components and help developers make tradeoffs between
  4293.    features and development time.
  4294.  
  4295.               <<Figure A-3  Implementation effort for AURP>>
  4296.  
  4297.    Creating Free-Trade Zones
  4298.  
  4299.    A useful feature of AURP is that it allows a network administrator to
  4300.    create free-trade zones. A free-trade zone is a part of an internet
  4301.    that is accessible by two other parts of the internet, neither of
  4302.    which can access the other. An administrator might create a free-
  4303.    trade zone to provide some form of interchange between two
  4304.    organizations that otherwise want to keep their internets isolated
  4305.    from each other, or between two organizations that otherwise do not
  4306.    have physical connectivity with one another.
  4307.  
  4308.    AURP allows the creation of free-trade zones in two ways. In one
  4309.    method, described in the section "Fully Connected and Partially
  4310.    Connected Tunnels" in Chapter 2, an administrator intentionally
  4311.  
  4312.  
  4313.  
  4314. Oppenheimer                                                    [Page 77]
  4315.  
  4316. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  4317.  
  4318.  
  4319.    creates a partially connected tunnel. The administrator configures
  4320.    the exterior router to connect with two exterior routers between
  4321.    which a free-trade zone is to be established, but does not configure
  4322.    those exterior routers to connect with one another.
  4323.  
  4324.    The second method of using AURP to create a free-trade zone involves
  4325.    the use of network hiding. An administrator can configure a single
  4326.    router to create a free-trade zone. No AURP tunnel need exist. As
  4327.    shown in Figure A-4, three ports are configured on a router. One port
  4328.    connects to the free-trade zone, while the other two ports connect to
  4329.    the parts of the internets that are otherwise isolated from one
  4330.    another.
  4331.  
  4332.                  <<Figure A-4  Creating free-trade zones>>
  4333.  
  4334.    On the port connected to the free-trade zone, the administrator does
  4335.    not configure the router to hide any networks. The exterior router
  4336.    exports all networks from both organizations to the free-trade zone.
  4337.    On each port connected to an organization's internet, the
  4338.    administrator configures the router to export only the networks from
  4339.    the free-trade zone. The exterior router hides all the networks from
  4340.    the other organization's internet. In this way, each organization has
  4341.    access to the networks in the free-trade zone, and vice versa, but
  4342.    not to the networks in the other organization's internet.
  4343.  
  4344.    Implementation Details for Clustering
  4345.  
  4346.    The data structures that an exterior router uses to maintain
  4347.    information about clustering are key to the implementation of
  4348.    clustering. An exterior router should
  4349.  
  4350.       maintain mappings between the actual domain identifier and network
  4351.       range; the remapped network range; and the associated cluster
  4352.  
  4353.       maintain zone lists for each actual network and for the cluster as
  4354.       a whole
  4355.  
  4356.       use data structures that allow parts of the information to be
  4357.       marked for deletion, while maintaining that information for possible
  4358.       later reuse-for example, if a network goes down, then comes back up
  4359.  
  4360.       use data structures that are bidirectional-supporting both the
  4361.       conversion of a single FwdReq into multiple FwdReq packets and the
  4362.       manipulation of individual networks within the cluster
  4363.  
  4364.    An exterior router can cluster any network numbers that is has
  4365.    remapped into an available range of contiguous network numbers. From
  4366.    both an implementation and a management point of view, it is
  4367.  
  4368.  
  4369.  
  4370. Oppenheimer                                                    [Page 78]
  4371.  
  4372. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  4373.  
  4374.  
  4375.    generally best for an exterior router to cluster all network numbers
  4376.    that it receives from a particular exterior router at a given time.
  4377.    For example, it may be desirable to cluster all of the network
  4378.    numbers included in the initial information exchange with a
  4379.    particular exterior router, then later, to cluster all of the network
  4380.    numbers received in NA events in a given RI- Upd packet.
  4381.  
  4382.    Maintaining compatibility with AppleTalk Phase 2 complicates the
  4383.    implementation of clustering. An exterior router can include a
  4384.    maximum of 255 zones in a cluster. This limit may prevent the
  4385.    exterior router from clustering all of the network numbers that it
  4386.    receives at one time.  When an exterior router receives a list of
  4387.    networks from another exterior router, it does not know how many
  4388.    different zone names the networks use. The exterior router does not
  4389.    have this information until it receives the associated ZI-Rsp
  4390.    packets. Therefore, an exterior router should not build a cluster
  4391.    until it has received a complete zone list for the network numbers
  4392.    being clustered. Once the exterior router has complete zone
  4393.    information for the network numbers, it can cluster the maximum
  4394.    number of network numbers allowed by the 255 zone limit.
  4395.  
  4396.    AURP does not specify the method by which an exterior router, when
  4397.    forming a cluster, should determine the hop count for that cluster-
  4398.    that is, the apparent distance in hops to the single extended network
  4399.    that represents the cluster. Possible implementation options include
  4400.  
  4401.       always setting the hop count to a constant value
  4402.  
  4403.       setting the hop count to the minimum, average, or maximum of the
  4404.       hop counts for the networks within the cluster
  4405.  
  4406.    In a large internet, setting the hop count for a cluster too high may
  4407.    make the networks in that cluster unreachable from some networks in
  4408.    the local internet of the exterior router that is clustering the
  4409.    network numbers.
  4410.  
  4411.    Modified RTMP Algorithms for a Backup Path
  4412.  
  4413.    In the following RTMP maintenance algorithms defined in Inside
  4414.    AppleTalk, the backup path is an RTMP link. These algorithms can be
  4415.    adapted to AURP according to the architectural model described in the
  4416.    section "AURP Architectural Model" in Chapter 3. Proposed
  4417.    modifications to these algorithms appear in boldface Courier font.
  4418.  
  4419.    On Receiving an RTMP Data Packet Through a Port
  4420.  
  4421.    IF P is connected to an AppleTalk network AND P's network
  4422.         number range = 0
  4423.  
  4424.  
  4425.  
  4426. Oppenheimer                                                    [Page 79]
  4427.  
  4428. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  4429.  
  4430.  
  4431.    THEN BEGIN
  4432.         P's network number range := packet's sender network
  4433.              number range;
  4434.         IF there is an entry for this network number range
  4435.         THEN delete it;
  4436.         Create a new entry for this network number range with
  4437.              Entry's network number range := packet's sender
  4438.                   network number range;
  4439.              Entry's distance := 0;
  4440.              Entry's next IR := 0;
  4441.              Entry's status := Good;
  4442.              Entry's port := P;
  4443.         END;
  4444.    FOR each routing tuple in the RTMP Data packet DO
  4445.         IF there is a table entry corresponding to the tuple's
  4446.              network number range
  4447.              THEN Update-the-Entry
  4448.         ELSE IF there is a table entry overlapping with the
  4449.              tuple's network number range
  4450.              THEN ignore the tuple
  4451.         ELSE IF P is not a backup path
  4452.              THEN Create-New-Entry
  4453.         ELSE     Create-New-Tentative Entry;
  4454.  
  4455.    Update-the-Entry
  4456.  
  4457.    IF (Entry's port is not a backup port AND P is a
  4458.         backup port)
  4459.    THEN Return; {Ignore tuple}
  4460.    IF (Entry's state = Bad) AND (tuple distance <15)
  4461.    THEN Replace-Entry
  4462.    ELSE
  4463.         IF Entry's distance >= (tuple distance +1) AND (tuple
  4464.              distance <15)
  4465.              OR  (Entry's port is a backup port and P is not a
  4466.                   backup port)
  4467.         THEN Replace-Entry
  4468.         ELSE IF Entry's next IR = RTMP Data packet's sender node
  4469.              address AND Entry's port = P
  4470.         THEN IF tuple distance <> 31 THEN BEGIN
  4471.              Entry's distance := tuple distance + 1;
  4472.              IF Entry's distance < 16
  4473.              THEN Entry's state := Good
  4474.              ELSE Delete the entry
  4475.         END
  4476.         Else Entry's state := Bad;
  4477.  
  4478.  
  4479.  
  4480.  
  4481.  
  4482. Oppenheimer                                                    [Page 80]
  4483.  
  4484. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  4485.  
  4486.  
  4487.    An exterior router uses the Create-New-Tentative-Entry algorithm when
  4488.    it discovers a previously unknown network across a backup path. An
  4489.    exterior router should not add an entry to the routing table being
  4490.    broadcast to its local internet until it determines definitely that
  4491.    no alternative path to a network is available. While waiting for
  4492.    another path to a network to become available, the exterior router
  4493.    temporarily stores the routing-table entry in a tentative routing
  4494.    table, as defined by the following algorithm:
  4495.  
  4496.    Create-New-Tentative-Entry
  4497.  
  4498.    IF tentative entry for tuple's network number range does not
  4499.         already exist
  4500.         THEN BEGIN
  4501.              Tentative entry's network number range =
  4502.                   tuple's network number range;
  4503.              Tentative entry's distance := tuple's distance;
  4504.              Tentative entry's next IR = packet's node address;
  4505.              Tentative entry's port := P;
  4506.              Start a TBD-minute timer for this entry;
  4507.         END;
  4508.    WHEN timer for this entry expires
  4509.         IF there is a table entry corresponding to or
  4510.              overlapping with the tentative entry's network
  4511.              number range
  4512.              THEN ignore the entry
  4513.         ELSE Create-New-Entry; {using data from the tentative
  4514.              entry}
  4515.         Delete tentative entry;
  4516.  
  4517.  
  4518.  
  4519.  
  4520.  
  4521.  
  4522.  
  4523.  
  4524.  
  4525.  
  4526.  
  4527.  
  4528.  
  4529.  
  4530.  
  4531.  
  4532.  
  4533.  
  4534.  
  4535.  
  4536.  
  4537.  
  4538. Oppenheimer                                                    [Page 81]
  4539.  
  4540. RFC 1504        Appletalk Update-Based Routing Protocol      August 1993
  4541.  
  4542.  
  4543. Security Considerations
  4544.  
  4545.    This memo discusses a weak form of security called network hiding or
  4546.    device hiding.  More general concerns about security are not
  4547.    addressed.
  4548.  
  4549. Author's Address
  4550.  
  4551.    Alan B. Oppenheimer
  4552.    Apple Computer, M/S 35-K
  4553.    20525 Mariani Avenue
  4554.    Cupertino, California  95014
  4555.  
  4556.    Phone: 408-974-4744
  4557.    EMail: Oppenheime1@applelink.apple.com
  4558.  
  4559.    Note: The author would like to acknowledge the contribution of Pabini
  4560.    Gabriel-Petit here at Apple, who translated the engineering
  4561.    specification into human-readable form.
  4562.  
  4563.  
  4564.  
  4565.  
  4566.  
  4567.  
  4568.  
  4569.  
  4570.  
  4571.  
  4572.  
  4573.  
  4574.  
  4575.  
  4576.  
  4577.  
  4578.  
  4579.  
  4580.  
  4581.  
  4582.  
  4583.  
  4584.  
  4585.  
  4586.  
  4587.  
  4588.  
  4589.  
  4590.  
  4591.  
  4592.  
  4593.  
  4594. Oppenheimer                                                    [Page 82]
  4595.